![]() |
OnClick-Prozedurname in String umwandeln
Hallo!
Ich erzeuge auf meiner Form massenhaft Buttons und da wollte ich mir aus Debuggründen im Hint jeden Buttons den Namen der OnClick-Prozedur anzeigen lassn. Wie mache ich das am Besten? Hint := String(OnClick); geht ja mal nicht. Grüße Faux |
Re: OnClick-Prozedurname in String umwandeln
Delphi-Quellcode:
An sonsten würde ich einfach die OnClick überschreiben und dann dort den Hint ausgeben wenn du die Buttons dyn. erstellen willst.
procedure TForm.ButtonClick(Sender: TObject);
begin showmessage((Sender as TButton).Name); end; |
Re: OnClick-Prozedurname in String umwandeln
Das kann man so lösen (pseudo-code)#
Delphi-Quellcode:
Das funktioniert aber nur, wenn die Methode published ist, also auch mittels des ObjectInspectors zugewiesen werden kann.
var
m: TMethod; begin m := TMethod(Form1.OnClick); ShowMessage( TObject(m.Data).MethodName(m.Data) ); end; |
Re: OnClick-Prozedurname in String umwandeln
Zitat:
Delphi-Quellcode:
Grüße
OnClick := PressActionKey;
{$IF Defined(DEBUG)} ShowHint := True; Hint := IntToStr(Tag) + ' - ' + TObject(TMethod(OnClick).Data).MethodName(TMethod(OnClick).Data); {$IFEND} Faux |
Re: OnClick-Prozedurname in String umwandeln
Hallo,
ersetz mal die Zeile:
Delphi-Quellcode:
durch:
Hint := IntToStr(Tag) + ' - ' + TObject(TMethod(OnClick).Data).MethodName(TMethod(OnClick).Data);
Delphi-Quellcode:
dann sollte es funktionieren.
Hint := IntToStr(Tag) + ' - ' + TObject(TMethod(OnClick).Data).MethodName(TMethod(OnClick).Code);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz