Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

AW: Wie kann ich feststellen welche Ereignismethode zugewiesen wurde?

  Alt 7. Apr 2011, 19:02
Also zunächst einmal ist das Prüfen des Empfängers eines Events
nicht sinnvoll, denn Events sollen ja gerade beliebig verdrahtet werden können,
ohne dass der Eventauslöser den Empfänger kennt.
Die Eventempfänger sollen anonym bleiben (Geheimnisprinzip der Objekt-orientierten Programmierung).

Aber falls doch, dann so:
Delphi-Quellcode:
function IsSameMethod(a,b:TMethod):Boolean;
begin
   Result := (a.Code=b.Code) and (a.Data=b.Data);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
   a, b : TMethod;
begin
   a := TMethod(Button1.OnClick);
   b.Code := @TForm1.Button1Click;
   b.Data := Self;

   if IsSameMethod(a, b) then
      Caption := 'Gleich'
   else
      Caption := 'Ungleich';
end;
Andreas
  Mit Zitat antworten Zitat