AGB  ·  Datenschutz  ·  Impressum  







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

Delphi XE2 U4 Bug Ja/Nein?

Ein Thema von Schlingel · begonnen am 28. Jun 2012 · letzter Beitrag vom 29. Jun 2012
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

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

AW: Delphi XE2 U4 Bug Ja/Nein?

  Alt 29. Jun 2012, 09:44
Ja, natürlich, was Parameter angeht ist es natürlich sowieso äußerst unsauber da Standard-Bezeichner wie Width oder Height zu verwenden.

Nichtsdestotrotz hättest du das Problem aber immer noch gehabt, wenn das ganze in einer Methode eines Formulars stünde, in der du mit Width und Height auf das Formular zugegriffen hättest. Dann würde sich das bei XE2 plötzlich auf das TRect in der with-Klausel beziehen.

Und von daher wirst du bei Verwendung von with niemals solche schwer zu findenden Probleme gänzlich ausschließen können, weshalb ich es nach wie vor für sehr gefährlich halte.

Und da es auch keine echten Vorteile bietet (abgesehen von ein paar Zeichen weniger zu tippen ), sehe ich schlicht den Sinn darin nicht, den Code damit mutwillig schlechter wartbar, schlechter debugbar, unübersichtlicher und fehleranfälliger zu machen.
Sebastian Jänicke
AppCentral
  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
 
#2

AW: Delphi XE2 U4 Bug Ja/Nein?

  Alt 29. Jun 2012, 10:00
Wenn man das with innerhalb einer Methode benutzt, dann kann man auch dort für Eindeutigkeit sorgen:
Delphi-Quellcode:
function TFoo.Foo( aWidth : integer ) : TRect;
begin
  with Result do
  begin
    Left := Width + aWidth + Self.Width;
  end;
end;
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
Benutzerbild von jaenicke
jaenicke

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

AW: Delphi XE2 U4 Bug Ja/Nein?

  Alt 29. Jun 2012, 10:14
Und man kann es auch gleich ordentlich schreiben, dann sieht man sogar gleich was da passiert.
Delphi-Quellcode:
function TFoo.Foo(const AWidth: Integer): TRect;
begin
  Result.Left := Result.Width + AWidth + Self.Width;
end;
Leichter lesbar und man kann es sogar gut debuggen.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.654 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delphi XE2 U4 Bug Ja/Nein?

  Alt 29. Jun 2012, 11:28
Und da es auch keine echten Vorteile bietet (abgesehen von ein paar Zeichen weniger zu tippen ), sehe ich schlicht den Sinn darin nicht, den Code damit mutwillig schlechter wartbar, schlechter debugbar, unübersichtlicher und fehleranfälliger zu machen.
Man sollte sich daran erinnern, daß Wirth das with unter anderem deshalb in die Sprache eingebaut hat, damit der Compiler eine Möglichkeit zur Optimierung bekommt (Jensen, Wirth: Pascal User Manual and Report (2nd edition), Seite 47).

Ich war früher auch ein Befürworter von with unter kontrollierten Bedingungen. Das Problem dabei ist, daß sich die Bedingungen nicht kontrollieren lassen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delphi XE2 U4 Bug Ja/Nein?

  Alt 29. Jun 2012, 13:00
Und dann kommt ein Jahr später jemand auf die Idee dem TRect noch ein Property AWidth zu spendieren.
Ein Therapeut entspricht 1024 Gigapeut.
  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 10:42 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