Einzelnen Beitrag anzeigen

s-off
(Gast)

n/a Beiträge
 
#2

Re: Stringlisten in mehreren Prozeduren nutzen

  Alt 23. Aug 2007, 14:19
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
  Mit Zitat antworten Zitat