Czy istnieje jakas mozliwosc sprawdzenia czy obiekt do ktorego metody sie chce odwolac istnieje czy nie?
Nastepnie w zaleznosci od wyniku tego sprawdzenia podjac odpowiednie dzialanie?
najchetniej widzialbym to w taki sposob:
TMojLog = class(TListbox)
...
class procedure komunikat(napis: string); static;
end;
class TMojLog.komunikat(napis: string)
var plik: textfile;
begin
if assigned(self) then // teoretycznie w metodach statycznych nie ma dostepu do SELF
items.add(napis)
else begin
assignfile(plik,'log.txt');
append(plik);
writeln(plik,napis);
closefile(plik);
end;
end;
var Log: TMojLog;
begin
Log.komunikat('jakis komunikat'); //tu wywoluje metode niezainicjowanego obiektu
end;
W programie w wielu miejscach wykonuje metode Log.komunikat(); i chcialbym zeby program dzialal rownie skutecznie z utworzonym obiektem klasy TMojLog jak i bez niego.
//dopisane
Zapomnialem dodac, ze chce uniknac tego sprawdzania przed kazdym wywolaniem funkcji (unikniecie tego sprawdzania jest istota problemu:D )
if Log <> NIL then
Log.komunikat();
przed kazdym wywolaniem metody Log.komunikat().
Czy (a jesli tak to jak??) da sie cos takiego zrobic??