AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Klatsch und Tratsch Was nervt euch so, während der Programmierung oder so allgemein
Thema durchsuchen
Ansicht
Themen-Optionen

Was nervt euch so, während der Programmierung oder so allgemein

Ein Thema von himitsu · begonnen am 26. Jun 2010 · letzter Beitrag vom 3. Mai 2013
Thema geschlossen
mkinzler
(Moderator)

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

AW: Was nervt euch so, während der Programmierung oder so allgemein

  Alt 17. Mär 2012, 12:44
Nein, weil es ja 2 Variablen sind, die nur gleich heissen.
Markus Kinzler
 
Benutzerbild von himitsu
himitsu

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

AW: Was nervt euch so, während der Programmierung oder so allgemein

  Alt 17. Mär 2012, 12:54
Jupp, die verdecken sich nur (also ihren Scope), aber überschrieben wird da erstmal nix ... außer wenn man auf die "falsche" Variable zugreift, weil man den Scope/Gültigkeistbereich nicht beachtet.
Was gerne mal in WITHs passiert.
Ein Therapeut entspricht 1024 Gigapeut.
 
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#3

AW: Was nervt euch so, während der Programmierung oder so allgemein

  Alt 17. Mär 2012, 12:58
Der Compiler weiß mit Sicherheit, worauf er gerade zugreift, die Preisfrage ist, ob der Programmierer das auch weiß.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
 
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.933 Beiträge
 
Delphi 12 Athens
 
#4

AW: Was nervt euch so, während der Programmierung oder so allgemein

  Alt 17. Mär 2012, 14:25
Was gerne mal in WITHs passiert.
Was auch bei den VirtualTress nervig war. Ohne das dämliche with hätten die unter XE2 ohne Änderung funktioniert. Dank des with musste dort etwas geändert werden, weil TRect nun intern mehr kann und Variablen innerhalb des with leider genauso hießen...
Ich bin ja immer noch dafür für die Verwendung von with an sich eine Compilerwarnung einzuführen.
Sebastian Jänicke
AppCentral
 
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#5

AW: Was nervt euch so, während der Programmierung oder so allgemein

  Alt 17. Mär 2012, 17:43
Ich bin ja immer noch dafür für die Verwendung von with an sich eine Compilerwarnung einzuführen.
Und ich benutze das gar nicht erst....Ist nämlich m.E. eine reine Bequemlichkeits-/Ergonomieentscheidung, Tipparbeit zu ersparen (die ich nicht als solche empfinde). Der Compiler kann m.E. "nicht wirklich" nur einen Deut mehr mit diesem Schlüsselwort.
 
Benutzerbild von himitsu
himitsu

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

AW: Was nervt euch so, während der Programmierung oder so allgemein

  Alt 17. Mär 2012, 22:25
WITH erstellt eine implizite temporäre Variable ... man muß es nur richtig und mit Bedacht nutzen, dann gibt es keine kaum Probleme.

Nerven tut es, wenn man in etwa weiß was man will, aber eigentlich doch keine wirkliche Ahnung hat und einem dadurch irgendwie nichts einfällt, was man machen will.
Ein Therapeut entspricht 1024 Gigapeut.
 
Popov
(Gast)

n/a Beiträge
 
#7

AW: Was nervt euch so, während der Programmierung oder so allgemein

  Alt 18. Mär 2012, 00:18
Ja, das böse With. Ich nutze es eigentlich fast seit Anfang. Es erleichtert das Programmieren ungemein, spart Tipparbeit, macht Codes übersichtlicher. Ich habe in den Jahren nur ein einziges Mal Probleme, zufällig vor paar Tagen. Da bin ich an dem Ding verzweifelt, obwohl man, wenn man es weiß, sich fragt wieso, denn es ist so offensichtlich, nur habe ich es nicht gesehen. Manchmal sieht man vor lauter Bäume den Wald nicht.

Delphi-Quellcode:
procedure TForm1.ListBox1MeasureItem(Control: TWinControl; Index: Integer;
  var Height: Integer);
begin
  with ListBox1 do
  begin
    //irgendwas

    Height := 30;
  end;
end;
 
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.933 Beiträge
 
Delphi 12 Athens
 
#8

AW: Was nervt euch so, während der Programmierung oder so allgemein

  Alt 18. Mär 2012, 01:10
Das von mir genannte Beispiel in den VirtualTrees war:
Delphi-Quellcode:
      with DrawRect do
        MaskBlt(Target.Handle, Left - Offset.X, Top - Offset.Y, (Right - Offset.X) - (Left - Offset.X),
          (Bottom - Offset.Y) - (Top - Offset.Y), Source.Canvas.Handle, Left - PicRect.Left, DrawRect.Top - PicRect.Top,
          Source.MaskHandle, Left - PicRect.Left, Top - PicRect.Top, MakeROP4(DST, SRCCOPY));
Aber Offset gibts halt nun seit XE2 auch in TRect, so dass nicht mehr die Eigenschaft Offset, sondern DrawRect.Offset vom Compiler versucht wurde zu benutzen.

Und solche Erweiterungen kann man eben in fremden Quelltexten, die man benutzt nicht vorhersehen. Deshalb birgt with eben immer nicht nur die Gefahr, dass man selbst etwas verwechselt, sondern eben auch, dass Änderungen an ganz anderer Stelle plötzlich Probleme machen.

Solange es dann einen Compilerfehler gibt wie hier, ist das nur ärgerlich. Aber wenn der Dateityp dann an einer solchen Stelle übereinstimmt, wünsche ich viel Spaß beim Suchen des Fehlers, wenn man doch z.B. nur eine externe Komponente aktualisiert hat...

Ich hatte genau das Problem schon mehrfach in fremden Quelltexten. Und das nervt einfach nur tierisch, wenn man dadurch dann Stunden verschwendet, nur weil jemand nicht ordentlich programmiert hat.
Wir haben in der Firma jedenfalls with aus dem Wortschatz gestrichen.

Aber am allermeisten nervt daran, dass ein schnelles Debuggen mit with praktisch unmöglich ist. Keine Mouseoverauswertungen, Strg + F7 nur mit zusätzlicher Tipparbeit, ...

Aber weder das eine noch das andere wird erzwungen, und wenigstens den warnenden Hinweis wegen dieser problempotentiellen doppelten Gleichbezeichnung hätte ich mir bei diesem sehr ausgereiften Compiler noch gewünscht.
Wenn der Compiler einen mehrdeutigen Bezeichner findet, warnt er auch. Aber er sucht nicht zusätzlich in weiter entfernteren Scopes nach mehrdeutigen Bezeichnern, denn das würde die Kompilierzeit logischerweise erhöhen, wenn z.B. nach jeder lokalen Variable überall gesucht werden würde...
Sebastian Jänicke
AppCentral

Geändert von jaenicke (18. Mär 2012 um 01:13 Uhr)
 
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

AW: Was nervt euch so, während der Programmierung oder so allgemein

  Alt 18. Mär 2012, 03:04
Es [with-Statement] erleichtert das Programmieren ungemein, spart Tipparbeit, macht Codes übersichtlicher.
Das wäre aber noch diskussionswürdig. Und ob es die Probleme wert sind, die man sich mit with einhandelt, was man sich beim Tippen spart, wage ich zu bezweifeln. Und übersichtlicher finde ich es auch nicht unbedingt. Manchmal muss man schon zweimal gucken, auf was sich das with bezieht. gerade bei deinem Beispiel. Bezieht sich das Height auf die Listbox oder auf das Formular?
Michael
Ein Teil meines Codes würde euch verunsichern.
 
Thema geschlossen


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:

(?)

LinkBack to this Thread

Erstellt von For Type Datum
Untitled document This thread Refback 7. Nov 2011 09:54

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:38 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