Hi,
ich möchte überprüfen ob einem Ereignis eine bestimmte Methode zugewiesen ist. Mit folgendem Code funktioniert dies auch.
procedure TForm1.Button3Click(Sender: TObject);
var
aNotifyEvent: TNotifyEvent;
begin
Button1.OnClick:= Button1Click;
Button2.OnClick:= Button1Click;
aNotifyEvent:= Button1Click;
if (@Button2.OnClick = @aNotifyEvent) then
ShowMessage('sind gleich');
end;
Eleganter wäre ein Vergleich ohne die Hilfsvariable, z.B. in der Form:
if (@Button2.OnClick = @Button1Click) then
Da meckert der Compiler aber. Auch ein @@ habe ich ausprobiert, geht auch nicht. Der Compiler denkt immer er müßte die Methode jetzt aufrufen, obwohl ein @ bzw. @@ davor steht.
Ich bin wie immer für jeden Kommentar dankbar.
Nico
ich möchte überprüfen ob einem Ereignis eine bestimmte Methode zugewiesen ist. Mit folgendem Code funktioniert dies auch.
procedure TForm1.Button3Click(Sender: TObject);
var
aNotifyEvent: TNotifyEvent;
begin
Button1.OnClick:= Button1Click;
Button2.OnClick:= Button1Click;
aNotifyEvent:= Button1Click;
if (@Button2.OnClick = @aNotifyEvent) then
ShowMessage('sind gleich');
end;
Eleganter wäre ein Vergleich ohne die Hilfsvariable, z.B. in der Form:
if (@Button2.OnClick = @Button1Click) then
Da meckert der Compiler aber. Auch ein @@ habe ich ausprobiert, geht auch nicht. Der Compiler denkt immer er müßte die Methode jetzt aufrufen, obwohl ein @ bzw. @@ davor steht.
Ich bin wie immer für jeden Kommentar dankbar.
Nico
Comment