Moin Christian,
das class ist nicht notwendig, aber dann musst Du, um die Methode nutzen zu können, eine Instanz der Klasse bilden (MyDummy := TMyDummy.Create
.
Klassenmethoden können aber genutzt werden, ohne dass man eine Instanz erzeugen muss, dafür kann man in diesen nur nicht alles nutzen, was man in einer "normalen" Methode nutzen könnte (Felder der Klasse, Eigenschaften, "normale" Methoden, self verweist auf di e Klasse, nicht auf das Objekt).
Diese Einschränkungen dürften aber in dem Zusammenhang, in dem Du es nutzen willst, keine Rolle spielen (zumindest so wie es jetzt aussieht).
Anderenfalls lässt Du das class weg, und legst Dir ein Feld, z.B., in Deinem Formular vom Typ der Dummyklasse an.
Mal ein Beispiel mit beiden Varianten. Dazu benötigst Du nur ein Formular, und zwei Button.
Delphi-Quellcode:
type
TMyDummyNormal = class(TObject)
public
procedure MyClick(Sender: TObject);
end;
TMyDummyClass = class(TObject)
public
class procedure MyClick(Sender: TObject);
end;
type
TForm1 = class(TForm)
btnNormal: TButton;
btnClass: TButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
FMyDummyNormal : TMyDummyNormal;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// "normale" Methode
procedure TMyDummyNormal.MyClick(Sender: TObject);
begin
ShowMessage('NORMAL');
end;
// Klassenmethode
class procedure TMyDummyClass.MyClick(Sender: TObject);
begin
ShowMessage('CLASS');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
// Instanz der Klasse erzeugen
FMyDummyNormal := TMyDummyNormal.Create;
// Methode zuweisen
// Man beachte das F, denn es wird die
// Instanz FMyDummyNormal der Klasse TMyDummyNormal benutzt
btnNormal.OnClick := FMyDummyNormal.MyClick;
// Methode zuweisen
// Man beachte des T, denn es wird direkt die
// Klassenmethode benutzt
btnClass.OnClick := TMyDummyClass.MyClick;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
// Instanz wieder freigeben
FreeAndNil(FMyDummyNormal);
end;