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 88 von 192   « Erste     3878868788 899098138188     Letzte »    
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#871

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

  Alt 18. Mär 2012, 04:39
Wie allerdings sonst prozedur-/funktionsübergreifend Informationen ausgetauscht werden sollen, ist mir rätselhaft.
Parameter und brauchbares Klassendesign. Ich habe globale in C# nie vermissen müssen, weil ich es nie als für nötig empfand mir diese unter Delphi anzugewöhnen. Auch so Krücken wie Break, Continue und Exit kann man sich gerade unter Delphi einfach mal schenken, wenn man mit guten Bezeichnern verständliche Konditionen bastelt - unter C-likes ist zumindest das break für nicht-durchfallende case-Statements doch unverzichtbar.
Wenn es eine Warnung dafür geben sollte, müsste sie lauten "Lern es richtig zu machen!".

In Sachen "with" muss ich leider VB einen Gummipunkt verpassen: Durch den dort noch nötigen Punktoperator ist die Eindeutigkeit trotz ersparter Schreibarbeit und Beibehaltung der Übersichtlichkeit gegeben. So wie er in Delphi realisiert ist, nutze ich ihn maximal für im Code erstellte und initialisierte VCL Komponenten unter sehr definierten Bedingungen, und selten wenn weniger als 5-8 Zeilen dadurch kürzer würden. Sobald die implizite Referenz auf der "rechten Seite" auftaucht, qualifiziere ich jedoch immer zumindest bis auf den Klassen/-Instanznamen. Birgt zwar noch immer die Risiken die genannt wurden, jedoch ist unser Code nicht für andere Programmierer gedacht/zugänglich, und wenn es nicht mehr geht fällt es ohnehin auf mich zurück
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)

Geändert von Medium (18. Mär 2012 um 04:42 Uhr)
 
Benutzerbild von himitsu
himitsu

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

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

  Alt 18. Mär 2012, 04:57
Mich nervt, daß es viele nette Dinge in Delphi gibt, die ich mir aber nie merken kann.

Statt einem WITH könnte man z.B. die Vorlage "VAR" nutzen, mit einem kurzen Variablennamen und arbeitet dann mit dieser Variable weiter.
Mir fällt aber auf, daß man dieses VAR noch erweitern könnte, um ein [var] :=[*]; .
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
 
EWeiss
(Gast)

n/a Beiträge
 
#873

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

  Alt 18. Mär 2012, 05:08
Es ging bei with (VB6) nicht um ersparter Schreibarbeit sondern um Speicher zu sparen siehe 64K Limit pro Mod/Form das man wenn möglich einhalten sollte
(Win95 zeiten.)
Mittlerweile aber auch überholt.

gruss

Geändert von EWeiss (18. Mär 2012 um 05:59 Uhr)
 
Popov
(Gast)

n/a Beiträge
 
#874

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

  Alt 18. Mär 2012, 05:55
Also nichts gegen With. Es liegt vielleicht daran, dass einige With nur gelegentlich nutzen, so dass, wenn sie es dann doch nutzen, schon mal Flüchtigkeitsfehler passieren. Ich habe aus gegebenem Anlass schon sehr früh damit angefangen. Nicht nur, dass ich With nutze, nicht selten nutze ich es auch so with Image1, Picture.Bitmap, Canvas, Pen, ClipRect do . Man muß im Kopf nur die Übersicht behalte, bzw. man muß paar Regeln beachten. Man muß wissen, dass sowohl Image1 , wie auch Bitmap ein Height haben. Dann muß man wieder runter und trotz With auch mal ein Image1.Height schreiben wenn man sich darauf bezieht. Wie gesagt, es ist eher eine Frage der Übung.

Was so daran übersichtlich sein?

Delphi-Quellcode:
 Image1.Picture.Bitmap.Canvas.Rectangle(
   Image1.Picture.Bitmap.Canvas.ClipRect.Left + 10,
   Image1.Picture.Bitmap.Canvas.ClipRect.Top + 15,
   Image1.Picture.Bitmap.Canvas.ClipRect.Right - 10,
   Image1.Picture.Bitmap.Canvas.ClipRect.Bottom - 15
   );
Das ist übersichtlicher, oder?

Delphi-Quellcode:
 with Image1.Picture.Bitmap.Canvas, ClipRect do
   Rectangle(Left + 10, Top + 15, Right - 10, Bottom - 15);
Wobei ich mich in der letzten Zeit auch schon mal dabei ertappe, dass ich es so schreibe:

Delphi-Quellcode:
var
  C: TCanvas;
  R: TRect;
begin
  ...

  C := Image1.Picture.Bitmap.Canvas;
  R := C.ClipRect;
  C.Rectangle(R.Left + 10, R.Top + 15, R.Right - 10, R.Bottom - 15);
end;
Es stimmt schon, wenn man nicht alleine an einem Code arbeitet, dann kann with schon unübersichtlich sein. Und beim Debuggen ist es tatsächlich schlimm, aber ich gehe immer davon aus, dass der Code ok ist und ich es nicht brauche. Und wenn, dann schriebe ich es für den Debugger um. Auch nicht wild.
 
Benutzerbild von jaenicke
jaenicke

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

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

  Alt 18. Mär 2012, 09:15
Wobei ich mich in der letzten Zeit auch schon mal dabei ertappe, dass ich es so schreibe:
Ja, so schreibe ich das natürlich auch, nur mit etwas längeren Variablennamen. Ich schreibe das natürlich nicht wie in deinem ersten Beispiel.

Und beim Debuggen ist es tatsächlich schlimm, aber ich gehe immer davon aus, dass der Code ok ist und ich es nicht brauche.
Spätestens wenn man an größeren Projekten arbeitet, lernt man, dass man davon nie ausgehen kann. Selbst wenn alle Unittests klappen, irgendwo gibt es dennoch Fehler. Und ohne Unittests kann man von gar nichts ausgehen.

Aber ich hatte eben auch schon öfter solche Fälle wie in meinem Beispiel. Wo eben durch Änderungen in Delphi oder in fremden Codes plötzlich im besten Fall Compilerfehler entstehen oder im schlechtesten Fall einfach etwas nicht mehr korrekt funktioniert ohne dass man weiß warum. Das kann zwar immer passieren, aber es ist richtig ärgerlich, wenn man dann nach stundenlangen Korrekturen beim Einchecken feststellt, dass man eigentlich überall nur wegen with korrigieren musste...

Um bei deinem Beispiel zu bleiben:
Delphi-Quellcode:
with Image1.Picture.Bitmap.Canvas, ClipRect do
// Dummyzeile wegen dem Syntaxhighlighter...
Wenn du darin nun auch Width oder Height benutzt hättest, wäre das bis XE kein Problem gewesen. Nur hat TRect seit XE2 auch Width und Height. Und schon ist es nicht mehr eindeutig, ob das auf das Canvas oder auf ClipRect bezogen gemeint ist.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
 
Popov
(Gast)

n/a Beiträge
 
#876

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

  Alt 18. Mär 2012, 12:50
Das ist dann natürlich blöd, gebe ich zu. Obwohl ich Width und Height bei Rect schon so oft vermißt habe, dass es mich wundert, dass die so lange dafür gebraucht haben.
 
Benutzerbild von himitsu
himitsu

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

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

  Alt 18. Mär 2012, 13:13
Wobei ein benamtes WITH-Statemant auch was währe, so wie es beim ON-DO-Statement in einem Try-Except auch funktioniert.

Delphi-Quellcode:
with X: Edit1.Lines do
  X.Add('hallo);
oder with X := Edit1.Lines do oder with Edit1.Lines as X do (geht doch nicht)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

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

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#878

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

  Alt 18. Mär 2012, 13:19
besonders schön sind Konstrukte wie
Delphi-Quellcode:
  With Form1, TreeView1, PageControl1 do
    Items.AddChildFirst(nil, Caption + '-' + Activepage.Caption)
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
 
Benutzerbild von jaenicke
jaenicke

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

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

  Alt 18. Mär 2012, 13:27
Wobei ein benamtes WITH-Statemant auch was währe, so wie es beim ON-DO-Statement in einem Try-Except auch funktioniert.
Dann benutze doch Prism. Da kannst du Variablen inline deklarieren.

Obwohl ich Width und Height bei Rect schon so oft vermißt habe, dass es mich wundert, dass die so lange dafür gebraucht haben.
Wie himitsu schon schrieb:
Nja, wer konnte auch ahnen, daß man die Delphi2006-Features nun endlich auch mal delphiintern anwendet.
Wobei es in Delphi 2006 noch lange nicht alles so gab wie es für die Umsetzung in der Form wie in XE2 nötig ist.
Aber zumindest einiges hätte man natürlich auch da schon machen können.

besonders schön sind Konstrukte wie
Oh ja, wie ich sowas liebe...

Am besten dann mit ein paar hundert Zeilen in so einem with.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
 
Popov
(Gast)

n/a Beiträge
 
#880

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

  Alt 18. Mär 2012, 14:31
besonders schön sind Konstrukte wie
Oh ja, wie ich sowas liebe...
Dann würdest du mich abgöttisch lieben. Ist irgendwie meine Art. Aber ich gebe zu, wenn zwei dran arbeiten, dann kann es Deutungsprobleme geben.

Obwohl, ich habe mal (ist aber schon lange her) in der Firma ShowMessage(Format('Die Koordinate ist x=%d, y=%d', [x, y])) geschrieben und bin von einem Kollegen abgemacht worden wieso ich so unverständlich programmiere. Das hat bitte so zu lauten ShowMessage('Die Koordinate ist x=' + IntToStr(x) + ', y=' + IntToStr(y)) . Das versteht wenigstens jeder.
 
Thema geschlossen
Seite 88 von 192   « Erste     3878868788 899098138188     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 03:26 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