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