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
Seite 87 von 192   « Erste     3777858687 888997137187     Letzte »    
Benutzerbild von himitsu
himitsu

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

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

  Alt 17. Mär 2012, 13: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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
 
Benutzerbild von DeddyH
DeddyH

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

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

  Alt 17. Mär 2012, 13: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

Registriert seit: 10. Jun 2003
Ort: Berlin
9.590 Beiträge
 
Delphi 11 Alexandria
 
#863

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

  Alt 17. Mär 2012, 15: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
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
 
Delphi-Laie

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

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

  Alt 17. Mär 2012, 18:38
Globale Variablen habe ich nie (und würde ich sonst mit der Unit davor bezeichnen
Ich weiß, daß globale Variablen an sich schon recht verpönt sind (wenn auch nicht ganz so sehr wie das goto), so daß es sogar Programmiersprachen gibt, die sie gar nicht erst ermöglichen (dazu gibt es auch Beweise, daß trotzdem jeder Algorithmus realisierbar ist, soweit mir bekannt). Wie allerdings sonst prozedur-/funktionsübergreifend Informationen ausgetauscht werden sollen, ist mir rätselhaft. Für mich ist das ein relativ einfacher und unkomplizierter Weg, das zu bewerkstelligen. Genauso ist es mit dem goto. Break und exit z.B. sind auch nur etwas gehobene Versionen, das ach so verpönte goto auf Umwegen doch zu ermöglichen, denn es hat eben doch seine Existenzberechtigung.

Gut, wir müssen das in dieser "Meckerecke" nicht detaillieren und ausdiskutieren, sicher gibt es dazu auch einiges zu lesen.

Ach ja, und natürlich kann man Variablen so bezeichnen, daß einem das nicht passiert, genauso, wie überlicherweise Typen/Klassen auch ein vorangestelltes T erhalten (sollten), was aber nicht zwingend ist. 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.

Geändert von Delphi-Laie (17. Mär 2012 um 18:40 Uhr)
 
Delphi-Laie

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

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

  Alt 17. Mär 2012, 18: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.081 Beiträge
 
Delphi 12 Athens
 
#866

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

  Alt 17. Mär 2012, 23: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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
 
Popov
(Gast)

n/a Beiträge
 
#867

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

  Alt 18. Mär 2012, 01: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

Registriert seit: 10. Jun 2003
Ort: Berlin
9.590 Beiträge
 
Delphi 11 Alexandria
 
#868

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

  Alt 18. Mär 2012, 02: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
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!

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

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

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

  Alt 18. Mär 2012, 02:25
Nja, wer konnte auch ahnen, daß man die Delphi2006-Features nun endlich auch mal delphiintern anwendet.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
 
Benutzerbild von Luckie
Luckie

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

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

  Alt 18. Mär 2012, 04: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
Seite 87 von 192   « Erste     3777858687 888997137187     Letzte »    


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 10:54

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