![]() |
Valueänderung eines Properties mit dem Debugger erkennen
Hi all,
kann man die Änderung eines Property-Wertes mit dem Debugger erkennen. mit "Daten Haltepunkt" schaffe ich es nicht. Habe aber auch Info gefunden, daß es mit Properties einfach nicht geht. Und was ich auch nicht gefunden habe, ist die Info, wie man eine Änderung (schreiben in eine Variable) erkennen kann. Geht das überhaupt? Das Tutorial zum Debuggen hier im Forum hat mir auch nicht weiter geholfen. Jetzt mein eigentliches Problem: im Form gibt es eine Komponente - cbProjDir: THistoryCombo; - THistoryCombo = class(TComboBox) Wenn ich mir in der Watch-Liste frmTransMain.cbProjDir.ItemIndex anschaue sehe ich "-1" bis ich etwas zuweise. Ok. parallel dazu schaue ich mir frmTransMain.cbProjDir.FItemIndex an und sehe immer "-1" ??? Auch nach der Zuweisung Im FormCreate passiert nix, immer" -1" als ItemIndex. Ist ok. In FormShow wird einIndex von 0 gesetzt. Wenn später im laufenden Programm an einer anderen Stelle gehlten wird, ist der Index wieder -1 und ich kann die Stelle wo das passiert nicht finden. Danke schon mal Charly |
AW: Valueänderung eines Properties mit dem Debugger erkennen
Das "Normale" sind Adresshaltepunkte
und Soeinen könnte man z.B. in den Setter des gewünschten Property setzen. Das hilft natürlich nur, wenn es programmseitig über VCL zugewiesen wird. Direkt über SendMessage kommt es dort nicht vorbei. Oder man schaut, ob es ein OnChange-Ereignis gibt. Das kommt zwar erst nach dem Ändern, aber im Stacktrace dürfte noch der Auslöser stehen. (bei SendMessage klappt das leider nicht so gut, mit dem Stacktrace) Oder hier wäre auch ein Datenhaltepunkt denkbar, aber der muß auf eine interne Variable gehen, also eine Adresse im Arbeitsspeicher, nicht auf das Property. ![]() Nur hast du hier keine (eigene/verfügbare) Variable, da das sich das irgendwo in der Windows-Komponente versteckt. |
AW: Valueänderung eines Properties mit dem Debugger erkennen
Aus
![]() Zitat:
Und wie kann ich einen Datenhaltepunkt dazu bekommen, daß er immer bei einem schreibenden Zugriff auslöst? |
AW: Valueänderung eines Properties mit dem Debugger erkennen
Zitat:
Und wie kann ich einen Datenhaltepunkt dazu bekommen, daß er immer bei einem schreibenden Zugriff auslöst? Dazu habe ich gerade was gefunden. ![]() Legt einen Bedingungsausdruck fest, der bei jedem Durchlauf ausgewertet wird. Die Programmausführung wird angehalten, wenn der Ausdruck True ergibt. Geben Sie einen Bedingungsausdruck zum Beenden der Programmausführung ein. Sie können jeden gültigen Sprachausdruck verwenden. Alle Symbole im Ausdruck müssen jedoch vom Haltepunkt aus erreichbar sein. Funktionen sind zulässig, wenn sie einen booleschen Wert zurückgeben. Falls bei Datenhaltepunkten keine Bedingung festgelegt ist, wird der Haltepunkt wirksam, wenn die Daten innerhalb des Bereichs, der im Feld Länge angegeben ist, geändert werden. |
AW: Valueänderung eines Properties mit dem Debugger erkennen
Und nochmal zurück zu meinem Problem
Zitat:
und wieso ändert sich deren angezeigter Wert nicht? |
AW: Valueänderung eines Properties mit dem Debugger erkennen
Wenn du "was" zuweißt und wie?
Und gibt es auch etwas in den Items? |
AW: Valueänderung eines Properties mit dem Debugger erkennen
Hi,
so ein Problem habe ich auch mal gehabt, und es gab hier eine super Antwort aus dem Forum... Guckst du hier : ![]() Danke nochmals an die vielen einfallsreichen und guten Geister hier in der Runde! Gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:39 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 by Thomas Breitkreuz