AGB  ·  Datenschutz  ·  Impressum  







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

Debuggen in "with"

Ein Thema von Aviator · begonnen am 28. Jun 2013 · letzter Beitrag vom 29. Jun 2013
Antwort Antwort
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#1

Debuggen in "with"

  Alt 28. Jun 2013, 22:50
Hi Leute,

mal eine (vielleicht) blöde Frage an alle Spezialisten hier. Ich programmiere nun auch schon länger mit Delphi und nutze auch den Debugger ziemlich oft. Bisher hatte ich auch nie Probleme damit bzw. konnte mir immer irgendwie weiterhelfen. Mich stört nur eine Sache relativ stark, bei der ich hoffe, dass man die irgendwie umgehen kann.

Das Problem liegt hier:
Delphi-Quellcode:
with Label1 do begin
  Canvas.Font.Size := 12;
  Canvas.Font.Name := 'Calibri';
  ...
end;
Das mal nur als Beispiel. Wenn ich jetzt die Maus auf Size halte, wird mir natürlich immer die Canvas.Font.Size der Form angezeigt und nicht auf das sich eigentlich beziehende Label. Meine Frage ist jetzt: Ist es irgendwie möglich, dem Debugger beizubringen, dass er mir den Wert des Labels zurückgibt wenn ich die Maus darauf halte und nicht den der Form ohne ihn in die Liste der überwachten Ausdrücke aufzunehmen?

Schonmal danke im Voraus für die Hilfe. Wenn noch Fragen dazu offen sind, einfach stellen.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#2

AW: Debuggen in "with"

  Alt 28. Jun 2013, 23:03
Einfach kein 'With' benutzen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Debuggen in "with"

  Alt 28. Jun 2013, 23:16
Na klar, kein Problem:
Delphi-Quellcode:
Label1.Canvas.Font.Size := 12;
Label1.Canvas.Font.Name := 'Calibri';
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Debuggen in "with"

  Alt 28. Jun 2013, 23:17
Ja das es so geht ist mir klar. Gibt es aber keine Möglichkeit, das alles zu debuggen, ohne das "with" wegzulassen oder den Komponentennamen davor zu schreiben?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Debuggen in "with"

  Alt 28. Jun 2013, 23:41
Ja das es so geht ist mir klar. Gibt es aber keine Möglichkeit, das alles zu debuggen, ohne das "with" wegzulassen oder den Komponentennamen davor zu schreiben?
Nein
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Debuggen in "with"

  Alt 28. Jun 2013, 23:48
Naja ok. Dann muss ich es weiterhin wie gewohnt machen. Danke für die Info.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#7

AW: Debuggen in "with"

  Alt 29. Jun 2013, 07:28
Naja ok. Dann muss ich es weiterhin wie gewohnt machen. Danke für die Info.
Die Verwendung von with ist generell problembehaftet und sollte daher grundsätzlich vermieden werden. Das Problem liegt darin, daß man in einem With-Block leicht einmal Befehle unterbringt, die sich gar nicht auf das With-Objekt beziehen sollen und damit Laufzeitfehler erzeugt, die dann nur sehr schwer zu finden sind. With ist im Prinzip nur eine scheinbare Erleichterung für Schreibfaule. Da ich auch dazu neige, eher weniger als mehr tippen zu müssen, kopiere ich mir in solchen Fällen das Objekt, dessen Properties und Methoden ich benötige, in den Zwischenspeicher und muß das dann auch nicht mehr tippen, in folgendem Fall die fett markierten Teile:

Label1.Canvas.Font.Size := 12;
Label1.Canvas.Font.Name := 'Calibri';
Label1.Canvas.Font.Color := clRed;
Label1.Canvas.Font.Style := [fsBold];

Das hat den zusätzlichen Vorteil, daß ich mittels Code-Vervollständigung die benötigten Properties ebenfalls nicht eintippen muß, sondern nach Eingabe des Punktes aus dem Kontextmenü auswählen kann, nachdem ich den ersten Buchstaben getippt habe.
  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 23:04 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