Es ging darum zu prüfen ob das Objekt (die Komponente) irgendwann bereits mit Create erstellt wurde. Unabhängig davon ob sie noch nie erstellt wurde oder irgendwann mal mit Free bzw. FreeAndNil freigegeben wurde.
Ich hab etwas weiter überlegt und gesucht und bin auf den Operator
is gekommen.
Delphi-Quellcode:
if (not (StringList is TStrings)) then
begin
StringList := TStringList.Create;
end;
Damit sollte es doch gehen oder?
Das Abfangen der
Exception mit try...except bzw. try...finally wäre allenfalls eine Notlösung.
Aber selbst bevor die
Exception ausgelöst wird wurde ja irgendwie festgestellt, dass das Objekt nicht existiert. Oder registriert der Compiler einfach nur, dass "irgendwas" auf "irgendwas" zugreifen wollte was gar nicht existiert?