delphi:language:firsttimecall
Definition einer Klasse die sich selber kreiert:
type TFooClass = class private class var _Default: TFooClass; class destructor Destroy; class function GetDefault: TFooClass; static; public class property Default: TFooClass read GetDefault; private Whatever : Integer; public constructor Create; destructor Destroy; override; procedure DoThis; overload; end;
Und so wird das ganze definiert!
{ TFooClass } constructor TFooClass.Create; // Wie immer begin inherited Create; Whatever := 42; // Definieren was man sonst so braucht. end; class destructor TFooClass.Destroy; begin FreeAndNil( _Default ); end; destructor TFooClass.Destroy; begin Whatever := -1; inherited; end; procedure TFooClass.DoThis; begin Whatever := WhatEver + 1; end; class function TFooClass.GetDefault: TFooClass; begin if not Assigned( TFooClass._Default ) then TFooClass._Default := TFooClass.Create; Result := TFooClass._Default; end;
Also kann ich die Classen immer aufrufen mit:
TFooClass.Default.DoThis; // Ohne Create...
delphi/language/firsttimecall.txt · Zuletzt geändert: 2015/03/14 21:48 von gerdbernau