Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#10

AW: "Namespace" innerhalb einer Klasse

  Alt 3. Dez 2010, 20:46
Delphi-Quellcode:
unit Unit9;

interface

uses
  SysConst, SysUtils;

type
  TAnimator = class
  private
    FAllowFree: Boolean;
    class var FSingleton: TAnimator;
  public
    procedure BeforeDestruction; Override;

    procedure Animate();
    procedure Stop();
  end;

  TObjectAnimator = class helper for TObject
  public
    function Animate: TAnimator;
  end;

implementation

procedure TAnimator.BeforeDestruction;
begin
  if not FAllowFree then
    raise EAccessViolation.Create(SAccessViolationNoArg);
end;

function TObjectAnimator.Animate: TAnimator;
begin
  Result := TAnimator.FSingleton;
end;

...

initialization
  TAnimator.FSingleton := TAnimator.Create;

finalization
  TAnimator.FSingleton.FAllowFree := True;
  FreeAndNil(TAnimator.FSingleton);

end.
Du könntest natürlich auch einen indirekten Namespace einführen, in Form von einem Namesprefix, welchen du allen deinen Methoden/Property vorstellst.
Delphi-Quellcode:
type
  TObjectAnimator = class helper for TObject
  public
    procedure AnimateAnimate();
    procedure AnimateStop();
  end;
$2B or not $2B
  Mit Zitat antworten Zitat