Autor |
Beitrag |
bf109g.01
      
Beiträge: 84
|
Verfasst: Di 23.08.11 17:51
Hallo, ich möchte mit meine Speichern-Prozedur die Zeilen eines Memos in eine Stringlist übertragen, das dann speichern und beim wieder auslesen, die Zeilen aus der stringlist wieder ins Memo schreiben:
meine Lösung sieht so aus:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TFFragen.Frage_speichern(Stelle:integer); var I:Integer; begin for i := 0 to Fr_MLoesung.Lines.Count - 1 do AFragen[Stelle].Loesung[i]:=Fr_MLoesung.Lines[i]; end;
procedure TFFragen.Frage_laden(Stelle:Integer); var I:Integer; begin for i := 0 to AFragen[Stelle].Loesung.Count - 1 do Fr_MLoesung.Lines.add(AFragen[Stelle].Loesung[i]); end; |
Beides gibt Fehlermeldungen über Zugriffsverletzungen und ich sehe einfach gerade nicht, wo der Fehler liegt. Vermutl überschreitet irgendwo die Schleife die Dateiränder... Moderiert von Narses: Topic aus VisualCLX (Component Library for Cross Platform) verschoben am Di 23.08.2011 um 18:52
|
|
colaka
      
Beiträge: 200
Erhaltene Danke: 4
Win XP, W7
Delphi 2005 Prof.
|
Verfasst: Di 23.08.11 21:42
Hallo,
die Fehlermeldung kommt möglicherweise davon, daß Du die Stringliste nicht erzeugt hast. Außerdem kannst Du Dir die Schleife sparen und den Inhalt direkt übergeben.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| procedure TForm1.Button1Click(Sender: TObject); begin Liste := TStringlist.Create; Liste.AddStrings(Memo1.Lines); end;
procedure TForm1.Button2Click(Sender: TObject); begin Memo1.Lines.AddStrings(Liste); end; |
Gruß Ebi
|
|
Andreas L.
      
Beiträge: 1703
Erhaltene Danke: 25
Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
|
Verfasst: Mi 24.08.11 08:47
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 24.08.11 09:18
_________________ We are, we were and will not be.
|
|
bf109g.01 
      
Beiträge: 84
|
Verfasst: Do 25.08.11 15:09
Jetzt bin ich ratlos:
Habe alle 3 Varianten durchprobiert und es gibt weiter den gleichen Fehler wie am Anfang...
|
|
Horschdware
      
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: Do 25.08.11 15:15
Bemühen wir doch mal den Debugger:
Enthält "Stelle" denn einen gültigen Wert?
Bei welchem Schleifendurchlauf bricht das Programm denn ab?
_________________ Delphi: XE - OS: Windows 7 Professional x64
|
|
bf109g.01 
      
Beiträge: 84
|
Verfasst: Do 25.08.11 16:39
Horschdware hat folgendes geschrieben : | Bei welchem Schleifendurchlauf bricht das Programm denn ab? |
Sofort: "Zugriffsverletzung bei Adresse 00470FFS in Modul 'Test.exe'. Lesen von Adresse 00000000".
|
|
Horschdware
      
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: Do 25.08.11 16:45
Also noch im SchleifenKOPF?
Ist denn Fr_MLoesung initialisiert?
_________________ Delphi: XE - OS: Windows 7 Professional x64
|
|
bf109g.01 
      
Beiträge: 84
|
Verfasst: Do 25.08.11 17:22
Na klar, sonste könnte ich doch gar nicht kompilieren...
So wie ich die Fehlermeldung verstehe, über- oder unterschreitet die Funktion an irgendeiner Stelle das Textende / den Anfang.
Ergibt aber bei den ^^ vorschgeschlagenen Lösungen keinen Sinn mehr, diese Erklärung....
|
|
Horschdware
      
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: Do 25.08.11 17:33
Ich glaube, du hast das falsch verstanden: Ich wollte wissen, ob das Objekt zu diesem Zeitpunkt existiert.
Wenn die Schleife schon im Kopf abbricht und gar nicht erst in den Schleifenrumpf gelangt, dann ist das hier in diesem Fall wohl die einzige plausible Lösung, dass das Objekt nicht initialisiert ist.
Ich glaube, es wäre sinnvoll, wenn du einmal deinen kompletten Code hier postest. Dann sollte das hier etwas transparenter werden.
_________________ Delphi: XE - OS: Windows 7 Professional x64
|
|