![]() |
Events überwachen
Moin,
ich habe z. Z. die Aufgabe, für ein Programm mit extrem vielen Formularen eine Art Benutzerlog zu erstellen. Wenn ein Benutzer einen bestimmten Button auslöst, dann soll die Buttoncaption und der Formularname gespeichert werden. Ich muss also alle Buttonevents vor dem eigentlichen ausführen abfangen und dementsprechend verarbeiten. Eventuell könnte der Spaß mit TApplicationEvents klappen, allerdings habe ich absolut keine Idee, wie genau ich diese Komponente verwenden soll. TELHook lässt sich leider nur einem Objekt zuweisen, wäre allerdings ansonsten perfekt. Hat jemand von euch eine Idee? Wie würdet ihr so etwas umsetzen? // Der Quellcode liegt mir natürlich vor und ist mit Delphi 2005 gebastelt worden :) |
AW: Events überwachen
Delphi 5 und TApplicationEvents ... wo hast'n das her? :gruebel:
Nja, wenn nicht, dann Application.OnMessage Und dann entweder den Debugger oder eine Logdatei bemühen und schauen was für Events wann dort durchrauschen WM_LBUTTONUP CN_COMMAND + BN_CLICKED (TButton.Click) usw. |
AW: Events überwachen
Ich habe hier Borland Delphi 2005 Architect.
Ich bemühe dann mal das OnMessage Event. Danke für den Tipp! |
AW: Events überwachen
Wie kann ich denn explizit auf einen ausgelösten Button reagieren?!
BN_Clicked wird auch ausgelöst, wenn ich auf den Taskbareintrag klicke. Benutze ich wie jetzt WM_COMMAND oder CN_COMMAND, wird die Variable t nie gefüllt.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin ShowMessage('Button1ClicktEvent'+'___:'+t); end; procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); begin if msg.message = WM_COMMAND then begin if msg.wparam = BN_CLICKED then t := TimeToStr(now); end; end; |
AW: Events überwachen
Msg.hwnd auswerten?
Beim OnMessage kommen natürlich alle Messages vorbei, welche über die MessageQueue des Hauptthreads laufen. Tipp: ![]() |
AW: Events überwachen
Alternativ könnte man auch eine neue Komponenten von TButton ableiten und TButton projektweit durch den Nachfahren ersetzen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 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