AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Valueänderung eines Properties mit dem Debugger erkennen
Thema durchsuchen
Ansicht
Themen-Optionen

Valueänderung eines Properties mit dem Debugger erkennen

Ein Thema von charly52 · begonnen am 14. Mär 2021 · letzter Beitrag vom 15. Mär 2021
Antwort Antwort
charly52

Registriert seit: 2. Sep 2018
Ort: Salem, Baden
102 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Valueänderung eines Properties mit dem Debugger erkennen

  Alt 14. Mär 2021, 11:30
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Valueänderung eines Properties mit dem Debugger erkennen

  Alt 14. Mär 2021, 11:55
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.
http://docwiki.embarcadero.com/RADSt...atenhaltepunkt
Nur hast du hier keine (eigene/verfügbare) Variable, da das sich das irgendwo in der Windows-Komponente versteckt.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (14. Mär 2021 um 12:00 Uhr)
  Mit Zitat antworten Zitat
charly52

Registriert seit: 2. Sep 2018
Ort: Salem, Baden
102 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#3

AW: Valueänderung eines Properties mit dem Debugger erkennen

  Alt 15. Mär 2021, 09:47
Aus http://docwiki.embarcadero.com/RADSt...atenhaltepunkt
Zitat:
Legen Sie im Feld Länge die Länge des Datenoperanden fest, der den Haltepunkt bilden soll. Beachten Sie, dass für die folgenden Situationen eine Warnung angezeigt wird:

Die Länge des Datenhaltepunkts sollte keine geraden Byte-Grenzen überlappen. (Für einen Datenhaltepunkt mit einer Länge von 1 Byte bestehen keine Ausrichtungsprobleme, aber Datenhaltepunkte mit 2 und 4 Byte könnten mehr oder weniger Adressen abdecken, als Sie beabsichtigen.)
Das mit den Datenhaltepunkten mit 2 oder 4 Byte verstehe ich nicht???




Und wie kann ich einen Datenhaltepunkt dazu bekommen, daß er immer bei einem schreibenden Zugriff auslöst?
  Mit Zitat antworten Zitat
charly52

Registriert seit: 2. Sep 2018
Ort: Salem, Baden
102 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Valueänderung eines Properties mit dem Debugger erkennen

  Alt 15. Mär 2021, 09:53
Zitat:
Legen Sie im Feld Länge die Länge des Datenoperanden fest, der den Haltepunkt bilden soll. Beachten Sie, dass für die folgenden Situationen eine Warnung angezeigt wird:

Die Länge des Datenhaltepunkts sollte keine geraden Byte-Grenzen überlappen. (Für einen Datenhaltepunkt mit einer Länge von 1 Byte bestehen keine Ausrichtungsprobleme, aber Datenhaltepunkte mit 2 und 4 Byte könnten mehr oder weniger Adressen abdecken, als Sie beabsichtigen.)
Das mit den Datenhaltepunkten mit 2 oder 4 Byte verstehe ich nicht???




Und wie kann ich einen Datenhaltepunkt dazu bekommen, daß er immer bei einem schreibenden Zugriff auslöst?
Dazu habe ich gerade was gefunden.
http://docwiki.embarcadero.com/RADSt...inzuf%C3%BCgen

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.
  Mit Zitat antworten Zitat
charly52

Registriert seit: 2. Sep 2018
Ort: Salem, Baden
102 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Valueänderung eines Properties mit dem Debugger erkennen

  Alt 15. Mär 2021, 09:59
Und nochmal zurück zu meinem Problem

Zitat:
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
Die Variable FItemIndex müsste man doch mit überwachen können wenn die Adresse bekannt ist?
und wieso ändert sich deren angezeigter Wert nicht?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Valueänderung eines Properties mit dem Debugger erkennen

  Alt 15. Mär 2021, 10:12
Wenn du "was" zuweißt und wie?
Und gibt es auch etwas in den Items?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
noisy_master

Registriert seit: 17. Jun 2009
Ort: Wolfenbüttel/Baddeckenstedt
255 Beiträge
 
Delphi XE5 Professional
 
#7

AW: Valueänderung eines Properties mit dem Debugger erkennen

  Alt 15. Mär 2021, 16:24
Hi,

so ein Problem habe ich auch mal gehabt, und es gab hier eine super Antwort aus dem Forum... Guckst du hier :https://www.delphipraxis.net/1064376-post16.html

Danke nochmals an die vielen einfallsreichen und guten Geister hier in der Runde!

Gruß
Dirk
  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 14:55 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