Einzelnen Beitrag anzeigen

Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Objekte in der richtigen Reihenfolge freigeben

  Alt 5. Mai 2011, 11:47
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
Klaus

Geändert von Klaus01 ( 5. Mai 2011 um 11:54 Uhr)
  Mit Zitat antworten Zitat