![]() |
Debugging
Hallo zusammen,
in einer komplexen Applikation mit vielen Fenstern, Units usw. habe ich das Problem herauszufinden, wer oder welche Unit einen Button auf Button1.Enabled := False stellt. Kann ich per Debugger überwachen, wann der Zustand des Buttons sich ändert? Mit der Liste überwachter Ausdrücke bin ich leider nicht weitergekommen. Dort habe ich versuchsweise eigegeben Button1.Enabled oder auch Button1.Enabled = False Beides reagiert nicht auf Änderungen des Enabled-Zustandes. Erschwerend kommt hinzu, dass ich nicht danach suchen kann, da an vielen Stellen im Programm mit FindComponent oder anderen Sachen gearbeitet wird, sodass der Button wahrscheinlich mit einem ganz andren Namen angesprochen wird. Wer weiß da weiter? Vielen Dank im Voraus. |
Re: Debugging
Benenne den Button um.
Stell eine Setter-Methode (SetButtonEnabled()) bereit und ändere alle Direkten Aufrufe von Button1.Enabled. Dann kannst du schön das ändern des Buttons debuggen. |
Re: Debugging
Du könntest versuchen mit Debug DCUs kompilieren und einen bedingten Haltepunkt (nur halten, falls Name = '...' oder so) an SetEnabled() des Buttons in der VCL setzen.
|
Re: Debugging
Man könnte den Button eventuell mal kurz gegen eine andere Komponente austauschen.
Und in dieser (selbsterstellten Dummykomponente) wird dann der Zugriff auf .Enabled überwacht. |
Re: Debugging
Zitat:
Danke auch für die anderen Vorschläge. |
Re: Debugging
Ab D10 könnte man das u.U. einfach mit einem Class Helper realisieren. Denn man dann einfach in die Uses einbindet, wenn man die Funktionalität benötigt
|
Re: Debugging
Zitat:
|
Re: Debugging
Ich wollte auch D10 schreiben :oops:
Dann bräuchte man keine eigene Klasse ableiten und überall im Quelltext ändern |
Re: Debugging
Du kannst mir ClassHelpern aber keine existierenden Funktionen überschreiben oder neue Funktionen in die alten einschleußen, also bringen hier ClassHelper nichts,
denn man muß dazu ja an bestehende Aufrufe herankommen. Und dieses geht leider nur über eine Ableitung, Umleitung oder einen Dummy. Oder eben über den Vorschlag von mirage228. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:49 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