Hallo Zusammen.
Ich stoße beim durchforsten immer wieder auf class function.
Welche Vorteile/Nachteile hat es wenn man gewisse funktionen als class function ausführt?
Hier ein Beispiel beim Aufrufen einer Form.
Hier ohne Klassenfunktion
Delphi-Quellcode:
unit unit2;
interface
uses Windows, Buttons, Classes, ComCtrls, Controls, Forms, StdCtrls, ExtCtrls;
type
TMyForm2 =
class(TForm)
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
function ShowMyForm(AOwner: TComponent): TModalResult;
implementation
{$R *.dfm}
function ShowMyForm(AOwner: TComponent): TModalResult;
var
myForm2: TMyForm2;
begin
Result := 0;
try
myForm := TMyForm2.Create(AOwner);
Result := myForm.ShowModal;
finally
FreeAndNil(myForm);
end;
end;
und hier mit Klassenfunktion
Delphi-Quellcode:
unit unit1;
interface
uses Windows, Buttons, Classes, ComCtrls, Controls, Forms, StdCtrls, ExtCtrls;
type
TMyForm =
class(TForm)
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
class function ShowMyForm(AOwner: TComponent): TModalResult;
end;
implementation
{$R *.dfm}
class function TLsBaseForm.ShowMyForm(AOwner: TComponent): TModalResult;
var
myForm: TMyForm;
begin
Result := 0;
try
myForm := Self.Create(AOwner);
Result := myForm.ShowModal;
finally
FreeAndNil(myForm);
end;
end;
Und hier die Unterschiede beim Aufrufen:
Delphi-Quellcode:
procedure TFrom3.Button1Click(Sender: TObject);
begin
{ ohne Klassenfunktion }
unit2.ShowMyForm(Self);
{ mit Klassenfunktion }
unit1.TMyFrom.ShowMyForm(Self);
end;
Danke für eure Antworten