Also beide Annahmen oben stimmen.
Die 'verwaiste' TStringList aus der ersten Annahme nennt man übrigens ein Speicherleck. -> Speicher der angefordert wird aber nie freigegeben wird.
property Searchlist: TStringlist read FSearchlist write FSearchlist;
Pfui.
Delphi-Quellcode:
[...]
function getSearchList:TStringlist;
[...]
property Searchlist: TStringlist read getSearchList write FSearchlist;
Und dann weiter:
Delphi-Quellcode:
function TXTEdit.getSearchList: TStringList;
begin
if not Assigned(FSearchList) then
FSearchList := TStringList.Create();
result := FSearchList;
end;
destructor TXtEdit.Destory;
begin
if Assigned(FSearchList) then
FreeAndNil(FSearchList);
inherited;
end;
Somit bekommst Du die Instanz der Searchlist genau dann, wenn Du das erste mal drauf zugreifst und räumst sie wieder auf, wenn Dein Edit zerstört wird.