Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.357 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Mitprotokollieren, was im Programm angeklickt wurde

  Alt 14. Mär 2010, 11:25
Also, ich erkläre einmal wie ich das mit den Class Helpern gelöst habe. Was Class Helper an sich sind findest du sicher auch selbst, deshalb lass ich das mal außen vor.

Das Problem war, dass Class Helper keine Möglichkeit bieten Daten zu einer Instanz zu speichern. Damit hatte ich zwei Möglichkeiten: Die Tag-Eigenschaft missbrauchen oder in dem Logobjekt die Daten zu speichern. Ich habe mich für Letzteres entschieden.

Ich habe einen Class Helper für TComponent geschrieben. Darin eine Initialisierungsmethode, die dann das Logging initialisiert. Diese habe ich dann einfach über das Components-Array der Formulare bei allen Komponenten aufgerufen.
In dieser Methode wird dann geschaut was es für eine Komponente ist und ich habe entsprechend die (in meinem Fall) OnClick, OnMouseEnter, OnMouseLeave und OnKeyPress Handler auf einen eigenen umgebogen, dabei aber die alten gespeichert. In den eigenen Handlern wird dann geloggt und dann der alte Handler aufgerufen.
Sollen die Handler dynamisch geändert werden kann man einfach eine eigene Property dafür definieren, deren Setter das dann übernimmt.

Da das natürlich einiges an Aufwand bedeutet wurde dies nur mit dem Switch /debug bei mir aktiviert. Da man auch kaum Änderungen am Programmcode selbst machen muss war das so ideal für mich, da es ein bestehendes größeres Projekt war.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat