Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: prozedur aufruf und sender

  Alt 25. Okt 2003, 19:59
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat