![]() |
Variable sender im Debugger überwachen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallöchen,
auf folgendes Problem bin ich gestoßen: Ich habe ein bisschen mit der Variable sender rumgespielt und mir ist aufgefallen, dass sich die Variable beim Debuggen nicht beobachten lässt(Siehe Anhang). Mache ich etwas falsch oder geht das einfach nicht. Wenn es nicht geht würde mich aus Interesse interessieren wieso nicht. ;) Benutzt wird XE7 und folgenden Code habe ich benutzt:
Delphi-Quellcode:
Grüße
procedure TForm1.btn1Click(Sender: TObject);
begin if sender = btn1 then pnl1.caption := 'erster sender erkannt' end; Andzie |
AW: Variable sender im Debugger überwachen
Das Argument
Delphi-Quellcode:
ist vom Typ
Sender
Delphi-Quellcode:
und der Debugger zeigt alle Informationen zu diesem Typ
TObject
Delphi-Quellcode:
an ... und da gibt es einfach nichts.
TObject
|
AW: Variable sender im Debugger überwachen
Hallöle...:P
In den überwachten Ausdrücken kannst du den Sender (TObject) auf den zu erwartenden Typ casten und somit sehen. :thumb: Nur mit Maus drüber wird das nix... |
AW: Variable sender im Debugger überwachen
Zitat:
Zitat:
Ich habe es zu den überwachten Ausdrücken hinzugefügt. Einen Typ hatte ich aber nicht angegeben. Werde es später mal ausprobieren! Zitat:
Delphi-Quellcode:
diesen Vergleich durchführt.
if sender = btn1 then
Muss dazu sagen, dass ich erst seitdem ich beruflich mit Programmieren zu tun habe, mich intensiver mit den Grundlagen beschäftige. Davor war ich eher das typische Scriptkiddy. |
AW: Variable sender im Debugger überwachen
Moin...:P
Zitat:
Delphi-Quellcode:
if TButton(Sender).Name = 'btn1'
|
AW: Variable sender im Debugger überwachen
Zitat:
Will man nun die korrekte Refernz vergleichen, oder ob es den selben gleichen Namen besitzt? |
AW: Variable sender im Debugger überwachen
Zitat:
Delphi-Quellcode:
mit dem Namen btn1 durchgelassen würde ;)
TEdit
Delphi-Quellcode:
ist vergleichbar mit
if Sender = btn1
then
Delphi-Quellcode:
und auch nur deswegen, weil der Owner dafür sorgt, dass der Name der Unter-Komponenten eindeutig ist.
if (Sender is TButton) // ah ein Button
and (TButton(Sender).Owner = Self) // diese Form ist der Owner and (TButton(Sender).Name = 'btn1' ) // der Name passt auch then // dann wird es wohl btn1 sein Assert( Sender = btn1 ); |
AW: Variable sender im Debugger überwachen
Zitat:
|
AW: Variable sender im Debugger überwachen
Zitat:
Es ist aber auch möglich eine Editkomponente btn1 zu nennen.
Delphi-Quellcode:
überprüft auf die Instanz und nicht den Typ
if Sender = btn1
|
AW: Variable sender im Debugger überwachen
Hi zusammen
Zitat:
Delphi-Quellcode:
Ich glaube nicht, das das wirklich funktionieren kann. Der Sender ist erstmal ein TObject und btn1 kann weiss was sein: der Ausdruck ist also immer false. Was auch heisst: So kann man Fehler einbauen, ohne es zu bemerken. Zumindest solange, bis einem klar wird, dass das ohne Cast nicht geht.
if Sender = btn1
Sollte ich daneben liegen, lasse ich mich gerne eines besseren brlehren. Ansonsten würde ich nur noch sagen: wer sein TEdit Btn1 nennt, it echt selber schuld... Gruss Delbor |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 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