AGB  ·  Datenschutz  ·  Impressum  







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

Debugging

Ein Thema von knochen · begonnen am 8. Okt 2009 · letzter Beitrag vom 9. Okt 2009
Antwort Antwort
knochen

Registriert seit: 26. Aug 2009
81 Beiträge
 
Delphi 2006 Professional
 
#1

Debugging

  Alt 8. Okt 2009, 14:26
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.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Debugging

  Alt 8. Okt 2009, 14:31
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Debugging

  Alt 8. Okt 2009, 14:32
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.
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Debugging

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

Registriert seit: 26. Aug 2009
81 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Debugging

  Alt 9. Okt 2009, 07:21
Zitat von himitsu:
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.
Das ist ohne Zweifel die (für meinen Fall) ideale Votrgehensweise. Ich hätte nur gedacht, Delphi gibt sowas in den Untiefen des Debuggers schon von Haus aus her. Schade, aber Hauptsache es klappt.

Danke auch für die anderen Vorschläge.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Debugging

  Alt 9. Okt 2009, 08:08
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
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#7

Re: Debugging

  Alt 9. Okt 2009, 10:19
Zitat von mkinzler:
Ab D2010 könnte man das u.U. einfach mit einem Class Helper realisieren.
class helper gibts auch schon in 2007. Verstehe allerdings grade nicht ganz, wie das zur Problemlösung beiträgt
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Debugging

  Alt 9. Okt 2009, 10:26
Ich wollte auch D10 schreiben
Dann bräuchte man keine eigene Klasse ableiten und überall im Quelltext ändern
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Debugging

  Alt 9. Okt 2009, 10:34
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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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 02:47 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