Moin
So müsstes du das machen, um die StringList beim Programmstart einmalig zu laden und bei Programmende wieder freizugeben:
Delphi-Quellcode:
...
private
{ Private declarations }
MyList: THashedStringList;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
MyList := THashedStringList.Create;
MyList.LoadFromFile(
ExtractFilePath(Application.ExeName) + 'plzDat.txt');
...
end;
//--angepasste proc von ACE-ppc:
procedure TForm1.Button8Click(Sender: TObject);
var
Index: Integer;
begin
index := MyList.IndexOfName(PlzEdit.Text + ' ');
If index > -1 Then
OrtEdit.Text := Trim(MyList.ValueFromIndex[index]);
end;
//--jetzte erst die Liste freigeben
procedure TForm1.FormDestroy(Sender: TObject);
begin
...
MyList.Free;
...
end;
Also im Pronzip recht simpel: MyList als private deklarieren, im FormCreate erzeugen und laden, Suchläufe beliebig oft durchführen und im FormDestroy() MyList wieder freigeben...