AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Events überwachen

Ein Thema von Xate · begonnen am 4. Mai 2012 · letzter Beitrag vom 4. Mai 2012
Antwort Antwort
Xate

Registriert seit: 11. Jun 2010
12 Beiträge
 
Delphi 2005 Architect
 
#1

Events überwachen

  Alt 4. Mai 2012, 09:22
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.137 Beiträge
 
Delphi 12 Athens
 
#2

AW: Events überwachen

  Alt 4. Mai 2012, 09:43
Delphi 5 und TApplicationEvents ... wo hast'n das her?

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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Xate

Registriert seit: 11. Jun 2010
12 Beiträge
 
Delphi 2005 Architect
 
#3

AW: Events überwachen

  Alt 4. Mai 2012, 09:48
Ich habe hier Borland Delphi 2005 Architect.
Ich bemühe dann mal das OnMessage Event. Danke für den Tipp!
  Mit Zitat antworten Zitat
Xate

Registriert seit: 11. Jun 2010
12 Beiträge
 
Delphi 2005 Architect
 
#4

AW: Events überwachen

  Alt 4. Mai 2012, 10:37
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;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.137 Beiträge
 
Delphi 12 Athens
 
#5

AW: Events überwachen

  Alt 4. Mai 2012, 10:44
Msg.hwnd auswerten?
Beim OnMessage kommen natürlich alle Messages vorbei, welche über die MessageQueue des Hauptthreads laufen.

Tipp: Delphi-Referenz durchsuchenFindControl
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Events überwachen

  Alt 4. Mai 2012, 12:30
Alternativ könnte man auch eine neue Komponenten von TButton ableiten und TButton projektweit durch den Nachfahren ersetzen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz