Hallo,
vielleich kannst Du das Singleton auch so aufbauen:
Delphi-Quellcode:
TLogger = class(TObject)
private
messageList : TThreadStringList;
constructor create;
public
destructor Destroy; override;
procedure push(s: AnsiString);
function pop:AnsiString;
function stackCount : Word;
class function getInstance:TLogger;
end;
implementation
var
singleInstanceLogger : TLogger;
constructor TLogger.create;
begin
inherited create;
messageList := TThreadStringList.create;
end;
destructor TLogger.Destroy;
begin
freeAndNil(MessageList);
inherited destroy;
end;
class function TLogger.getInstance:TLogger;
begin
if singleInstanceLogger = nil then
singleInstanceLogger := Tlogger.create;
result := singleInstanceLogger;
end;
Edit: Es vielleicht etwas zu kurz gegriffen, denn wenn zwischen dem destroy und der Ausgabe von Meldungen
kein getInstance mehr aufgerufen wird, knallt es auch hier...
Grüße
Klaus