Hallo,
die Stringliste ist nur dort gültig, wo Du sie erzeugst.
Du solltest sie also global erzeugen.
Edit:
Schwachsinn - ich meine natürlich, dass sie nur dort gültig ist, wo Du sie deklarierst.
Edit2:
Zitat von
WIng2005:
Muss die Stringlist nach jedem Schreiben geschlossen werden? Wenn ja, wie hänge ich an?
Nein.
Allgemein:
Wenn Du eine Stringliste in allen Methoden einer Klasse benutzen möchtest, dann solltest Du sie auch in der Klasse deklarieren.
Am Beispiel einer Klasse TForm1 sieht das dann ungefähr so aus:
Delphi-Quellcode:
Unit Unit1;
Interface
Uses
Windows,
Messages,
SysUtils,
Variants,
Classes,
Graphics,
Controls,
Forms,
Dialogs;
Type
TForm1 =
Class(TForm)
Procedure FormCreate(Sender: TObject);
Procedure FormDestroy(Sender: TObject);
private
sl: TStringlist;
End;
Var
Form1: TForm1;
Implementation
{$R *.dfm}
Procedure TForm1.FormCreate(Sender: TObject);
Begin
sl := TStringlist.Create;
End;
Procedure TForm1.FormDestroy(Sender: TObject);
Begin
FreeAndNil(sl);
End;
End.
Du könntest dann auf 'sl' in allen Methoden Deiner Klasse 'TForm1' zugreifen.
Willst Du auch in klassenfremden Methoden auf sl zugreifen, so musst Du die Sichtbarkeit erhöhen, oder eine Property mit entsprechenden read/write-Methoden zur Verfügung stellen, oder die Stringliste global deklarieren.
Edit3:
Rechtschreibfehler in Edit2 behoben