AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Ungewohntes Konstrukt

Ein Thema von Delbor · begonnen am 23. Apr 2021 · letzter Beitrag vom 24. Apr 2021
Antwort Antwort
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#1

Ungewohntes Konstrukt

  Alt 23. Apr 2021, 12:04
Delphi-Version: 10.4 Sydney
Hi zusammen

Ich setze in einer TGridPanel-Testanwendung diesen Code ein, um mehr über die Verwendung des TGridpanel zu erfahren.

Dabei bin ich auf ein eher ungewöhnliches Konstrukt gestossen:
Delphi-Quellcode:
    for i := 0 to -1 + rowCount * colCount do
    begin
    ...
    end;
Dabei denke ich, hat weder rowCount noch ColCount hier einen bestimmten Einfluss. Die Anweisung könnte genausugut heissen:
Delphi-Quellcode:
    rw := rowCount * colCount;
    for i := 0 to RW -1 do
      begin
      ...
      end;
Zumindest würde ich dies als wesentlich lesbarer erachten als die erste Form und die inzwischen ja verpönten with-Blöcke. Als ich die eliminieren wollte, hab ich einige Verständnisfehler gemacht, so dass am Schluss gar nichts mehr lief...

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.429 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Ungewohntes Konstrukt

  Alt 23. Apr 2021, 13:32
Ich würde eher so schreiben, aber das ist Geschmacksache.
Delphi-Quellcode:
     for i := 0 to rowCount * colCount - 1 do
     {...}
So sparsam und übersichtlich wie "with" dort eingesetzt wurde, kann man auch nichts gegen sagen.
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
627 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Ungewohntes Konstrukt

  Alt 23. Apr 2021, 13:35
Da gebe ich dir recht. Aber eien Variable zu nutzen uisit denncoh überflüssig um es besser lesbar zu machen. Ich würde sowas immer so schreiben:
Delphi-Quellcode:
 
for i := 0 to (rowCount * colCount) - 1 do // die () sind eigentlich überflüssig, helfen aber der Lesbarkeit
begin
 ...
end;
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Ungewohntes Konstrukt

  Alt 23. Apr 2021, 13:43
Da gebe ich dir recht. Aber eien Variable zu nutzen uisit denncoh überflüssig um es besser lesbar zu machen. Ich würde sowas immer so schreiben:
Delphi-Quellcode:
 
for i := 0 to (rowCount * colCount) - 1 do // die () sind eigentlich überflüssig, helfen aber der Lesbarkeit
begin
 ...
end;
Da bin ich auf Deiner Seite. Eine extra definition für diese komplexe Formel ist überflüssiger Balast, es sei denn man benötigt diesen Wert woanders noch mal.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Ungewohntes Konstrukt

  Alt 23. Apr 2021, 14:08
Hi Blub
Zitat:
So sparsam und übersichtlich wie "with" dort eingesetzt wurde, kann man auch nichts gegen sagen.
Ich hab den Code, wie ich ihn bei mir habe (im Original), mal in einen abgeänderten Prozedurkopf gepackt, und prompt hat sich ein end zuviel eingeschlichen. Kann aber schon sein, dass die Lese- und Schreibgewohnheiten des Verfassers da mitspielen (Natürlich tun sie das!).

Auch sparsam eingesetzte with-Blöcke können Quellen schwer auffindbarer fehler sein:
Delphi-Quellcode:
 with PanelX do begin
   Caption := 'XXXXXXXXXX';
   Length := 555;
   Text := Caption +'2';
 end;
Zugegeben, dieser Fehler dürfte so wohl eher einem Anfänger unterlaufen. Aber so kannst du auch vollkommen überflüssige Codezeilen einsparen und erhöhstdabeidie Lesbarkeit:
Zitat:
PanelX.Caption := 'XXXXXXXXXX';
PanelX.Length := 555;
PanelX.Text := Caption +'2';
So sparst du allein hier 2 Zeilen Code. Mit all den andern Wih-Blöcken summiert sich das nicht unwesentlich.
Übrigens ist dies wohl eine der wenigen Situationen, wo Copy&Paste ("PanelX.") erlaubt, bezw. sinnvolll ist. ist. Aber schlussendlich: jedem das Seine...

Da gebe ich dir recht. Aber eien Variable zu nutzen uisit denncoh überflüssig um es besser lesbar zu machen. Ich würde sowas immer so schreiben:
Delphi-Quellcode:
 
for i := 0 to (rowCount * colCount) - 1 do // die () sind eigentlich überflüssig, helfen aber der Lesbarkeit
begin
 ...
end;
Da bin ich auf Deiner Seite. Eine extra definition für diese komplexe Formel ist überflüssiger Balast, es sei denn man benötigt diesen Wert woanders noch mal.
Danke euch Allen! Mit den gesetzten Klammern ist das viel leichter lesbar, finde ich.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
709 Beiträge
 
Delphi XE5 Professional
 
#6

AW: Ungewohntes Konstrukt

  Alt 23. Apr 2021, 14:58
Auch sparsam eingesetzte with-Blöcke können Quellen schwer auffindbarer fehler sein:
Delphi-Quellcode:
 with PanelX do begin
   Caption := 'XXXXXXXXXX';
   Length := 555;
   Text := Caption +'2';
 end;
Die Verwendung von With ... End; verhindert darüber hinaus auch noch die Möglichkeit einer Inspektion der Variablenwerte im Debugger.
Gruß, Andreas
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Ungewohntes Konstrukt

  Alt 23. Apr 2021, 21:27
Delphi-Quellcode:
var P := PanelX; // oder sonstwas ... seit 10.4
P.Caption := 'XXXXXXXXXX';
P.Length := 555;
P.Text := P.Caption +'2';
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.772 Beiträge
 
Delphi 12 Athens
 
#8

AW: Ungewohntes Konstrukt

  Alt 24. Apr 2021, 17:14
Die Inline Variablen Deklaration geht auch schon seit 10.3.3, wenn
mann dann die ErrorInsight Fehler die das verursacht ignoriert

Ab 10.4 sind die dann aber weg, weshalb die 10.4 Empfehlung natürlich
verständlich ist.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Ungewohntes Konstrukt

  Alt 24. Apr 2021, 18:52
und vorgestellt wurde es ja auch erst 10.4, al s eines der neusten coolsten features

aber beser als ein with ist es definitiv.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:38 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