Moin Armin,
das funktioniert, weil in dem Falle MachWas eine Methode von TForm1, und von der Deklaration her gültig ist. Z.B. ein MouseDown Event wäre nicht gegangen.
Hättest Du MachWas so deklariert:
Delphi-Quellcode:
procedure MachWas(Sender: TObject);
begin
//...
end;
hättest Du es so zuweisen müssen
@radiogroup.OnClick := @machwas;
da es der Compiler schon nicht anders akzeptiert hätte.
Nur würde es nicht funktionieren, da das was in der Prozedur als Parameter Sender übergeben wird, der Wert von Self ist.
Würde man jetzt MachWas so deklarieren
Delphi-Quellcode:
procedure MachWas(ASelf: TComponent;Sender: TObject);
begin
//...
end;
Müsste man es zwar so
@radiogroup.OnClick := @machwas;
zuweisen, damit der Compiler es akzeptiert, aber es würde funktionieren.
Jetzt wäre beim Aufruf ASelf = nil (vermutlich, dass es tatsächlich nil ist weiss ich nicht sicher) und Sender gleich der Komponente, die das Ereignis ausgelöst hat, also in diesem Falle radiogroup.