![]() |
Hilfe bei Laden einer TStringList
Hey Leute, Ich arbeite an einem Programm, dass Namen von Personen un sinstige Informationen zu diesen in einer TStringList speichern soll und bei Bedarf aufrufen soll. Jetzt habe ich ein Problem mit dem Laden der TStringList. Könnt ihr mir Helfen, das ist mein Quelltext:
Delphi-Quellcode:
Ich würde mich freuen, wenn mir jemand weiterhelfen könnte,
implementation
{$R *.DFM} var Person :TStringList; procedure Eingabe (var Name,Zusatz :String); begin Name:=Form1.Edit1.Text; Zusatz:=Form1.Edit2.Text; end; procedure Ausgabe (Name,Zusatz :String); begin Form1.Edit1.Text:=Name; Form1.Edit2.Text:=Zusatz; end; procedure load (var Name,Zusatz :String); var s :String; begin Person.loadFromFile('List.dat'); s:=Person[Form1.ListBox1.ItemIndex]; Name:=copy(s,1,(pos(s,',')-1)); s:=copy(s,(pos(s,',')+1),length(s)); Zusatz:=copy(s,1,(pos(s,',')-1)); end; function Save (Name,Zusatz :String) :TStringList; begin if FileExists('List.dat') then Person.LoadFromFile('List.dat') else Person:=TStringList.Create; Person.Add(Name+','+Zusatz+','); Person.SaveToFile('List.dat'); Form1.ListBox1.Items.Add(Name); Form1.ListBox1.Items.SaveToFile('Namen.dat'); end; procedure TForm1.Button2Click(Sender: TObject); begin Close; end; procedure TForm1.Button1Click(Sender: TObject); var Personenname,Zusatzinfos :String; begin Eingabe(Personenname,Zusatzinfos); Save(Personenname,Zusatzinfos); end; procedure TForm1.ListBox1Click(Sender: TObject); var Personenname,Zusatzinfos :String; begin Load(Personenname,Zusatzinfos); Ausgabe(Personenname,Zusatzinfos); end; procedure TForm1.FormCreate(Sender: TObject); begin Form1.ListBox1.Items.LoadFromFile('Namen.dat'); if CheckBox1.Checked=true then Form1.ListBox1.Items.Clear; end; end. mfg Sebastian |
Re: Hilfe bei Laden einer TStringList
Vielleicht solltest Du uns auch sagen, was das Problem ist. Ich vermute, Du bekommst eine Zugriffsverletzung, da ich nirgends gesehen habe, dass Du die Stringliste überhaupt anlegst.
|
Re: Hilfe bei Laden einer TStringList
Ich würde noch die Prozeduren zu Methoden machen, dann sparst Du Dir das Form1...
|
Re: Hilfe bei Laden einer TStringList
Ja, ich bekomme eine Zugriffsverletzung,
was kann ich dagegen tun? |
Re: Hilfe bei Laden einer TStringList
Grob gesagt:
Delphi-Quellcode:
in Deinem Fall musst du das StringList durch Person ersetzen.
StringList := TStringList.Create
Wo man das macht: In dem Fall würde ich FormCreate vorschlagen. |
Re: Hilfe bei Laden einer TStringList
Wenn die Stringliste unbedingt eine globale Variable sein soll, solltest Du sie im initialization-Abschnitt anlegen und im finalization-Abschnitt freigeben. D.h., vor das letzte end schreibst Du
Delphi-Quellcode:
initialization
Person := TStringlist.Create; finalization Person.Free; |
Re: Hilfe bei Laden einer TStringList
Vielen dank, ich werde es gleich ausprobieren :wink:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz