Einzelnen Beitrag anzeigen

Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.350 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Problem mit Objektfreigabe

  Alt 30. Mär 2011, 12:02
Hi,

wenn ich es richtig verstehe, soll es in der Anwendung nur eine Instanz deines Objektes geben.
Und wenn es an mehreren Stellen gebraucht wird, spricht eigentlich nichts gegen globale Funktionen.

Ich wüde es dann z.B. so machen:

Code:
interface

type
  TMuster = class(TObject)
  public
    destructor Destroy; override;
  end;

function Muster: TMuster;

implementation

Uses
  SysUtils;

var
  FMuster: TMuster = nil;

function Muster: TMuster;
begin
  if not Assigned(FMuster) then
    FMuster := TMuster.Create;
  Result := FMuster;
end;

destructor TMuster.Destroy;
begin
  if FMuster = Self then
    FMuster := nil;
  inherited Destroy;
end;

initialization

finalization

  if Assigned(FMuster) then
    FMuster.Free;

end.
Im Programm benutze ich nur die Funktion Muster.
Die Funktion Muster als Klassenmethode würde genauso funktionieren.
Aber ich spare mir lieber den zusätzlichen Schreibaufwand.

Frank
Frank Reim
  Mit Zitat antworten Zitat