![]() |
Ereigniss-Aufrufe (OnChange etc.) eines Forms protokollieren
Hallo Zusammen
Ich möchte gerne auf meinem Form eine ListBox haben, die alle Events (OnChange, OnEnter, OnKeyPress etc.) aller darauf befindlichen Komponenten chronologisch auflistet. Oft habe ich das Problem, dass bei vielen OnChange-Prozeduren und Abhängigkeiten der einzelnen Komponenten die auf dem Form sind, nicht ganz überschaubar ist, welches Event Delphi nun in welcher Reihenfolge abarbeitet. Es wäre also praktisch, wenn man die Reihenfolge der aufgerufenen Ereignisse in der Liste angezeigt bekommt. Also so eine Art Event-Viewer für das eigene Projekt. Hat jemand einen praktischen und einfachen Vorschlag? Danke |
Re: Ereigniss-Aufrufe (OnChange etc.) eines Forms protokolli
Du fügst in jedem Event deiner Listbox einen Eintrag hinzu !?
|
Re: Ereigniss-Aufrufe (OnChange etc.) eines Forms protokolli
Danke MrKnogge, aaaaaaber...
Ich möchte natürlich nicht in jedem Event eingreifen müssen, sondern dies irgendwie "zentral" lösen. Es muss doch sicherlich möglich sein, irgendwie alle Ereignisse die ausgelöst und auf- gerufen werden, an einem Punkt abzuhandeln und zu protokollieren. |
Re: Ereigniss-Aufrufe (OnChange etc.) eines Forms protokolli
Wenn einem Event aber keine Methode zugewiesen wurde, wird dieser auch nicht ausgelöst.
|
Re: Ereigniss-Aufrufe (OnChange etc.) eines Forms protokolli
ist es nicht. Denn dafür bräuchtest du ja für jedes Ereignis eine entsprechende Methode die genau dem Ereignis entspricht.
Denn schließlich ist das auftreten eines Ereignisses nichts anderes als ein Funktionsaufruf aus der Komponente heraus. Wenn es keine Funktion gibt die aufgerufen werden kann wird auch nix aufgerufen. In der Komponente steht sinngemäß drin: - Wenn eine Ereignis-methode zugeweisen wurde dann rufe diese mit parameter X und Y auf. Und ist dort nix zugeweisen passiert diesbezüglich gar nix. |
Re: Ereigniss-Aufrufe (OnChange etc.) eines Forms protokolli
natürlich möchte ich auch nur die ereigniss protokollieren, denen ich auch selber methoden
zugeordnet habe. trotzdem möchte ich aber nicht jeder methode hinterlegen müssen, dass diese nun noch einen eintrag in einer liste machen soll mit dem hinweis, dass sie nun aufgerufen wurde. stellt auch vor, ihr habt ein form mit 200 bestehenden methoden und möchtet nun nachträglich nur mal so aus sicht einer fehlersuche mal eben wissen in welcher reihenfolge nun welche methode aufgerufen wird. ist natürlich nicht gerade "hübsch" nun allen methoden mal schnell eine zeile code hinzuzufügen. besonders dann nicht, wenn es hinterher wieder raus soll. löst den der auf aufruf einer methode, die einem ereigniss zugeordnet ist, nichts anderes eine art message aus, die wiederum irgendwo abgefangen und protokolliert werden kann? |
Re: Ereigniss-Aufrufe (OnChange etc.) eines Forms protokolli
Eine Alternative wäre es, Haltepunkte zu setzen.
|
Re: Ereigniss-Aufrufe (OnChange etc.) eines Forms protokolli
die unit hat knapp 23'000 zeilen. das mit den 200 methoden war nur ein beispiel. es sind
in diesem fall knapp 850 methoden enthalten. das wären durchaus viele haltepunkte die zu setzen wären. |
Re: Ereigniss-Aufrufe (OnChange etc.) eines Forms protokolli
Es gäbe eine sehr eklige Variante, die ein Hooken von TObject.MethodAddress involvieren würde, sodass in Wirklichkeit die Benachrichtigungs-Routine vor der eigentlichen Methode aufgerufen würde. Das könnte sich aber kompliziert gestalten.
|
Re: Ereigniss-Aufrufe (OnChange etc.) eines Forms protokolli
Hallo,
RTTI benutzen und schon mal 4 Wochen zum einarbeiten einplanen... Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:37 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