AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Vordefinierte Parameter nur im Interface-Abschnitt?
Thema durchsuchen
Ansicht
Themen-Optionen

Vordefinierte Parameter nur im Interface-Abschnitt?

Ein Thema von Codehunter · begonnen am 8. Jul 2016 · letzter Beitrag vom 12. Jul 2016
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Vordefinierte Parameter nur im Interface-Abschnitt?

  Alt 11. Jul 2016, 07:45
Mir ist allerdings damals schon kein Grund eingefallen warum man diese Verwirrungstaktik betreiben sollte und die Parameter weglassen sollte. Ein Überblick über fremden Quelltext wird dadurch deutlich verzögert und auch in eigenem Quelltext ist es der Lesbarkeit deutlich abträglich.
Womit sich quasi schon zwangsläufig die Frage aufdrängt: Warum lässt die Klassenvervollständigung das dann per Default weg und kann man dieses Verhalten umkonfigurieren?
Natürlich erkennt man Parameter in sauberem Quelltext zumindest an dem großen A als Prefix, aber den Typ sieht man daran dennoch nicht.
Jetzt wo du das ansprichst, wirft das bei mir gleich die nächste Frage auf: Das "A" am Anfang jedes Parameternamen scheint wohl nur bei Prozeduren und Funktionen üblich zu sein, nicht jedoch bei Eventhandlern (procedure of object). Zumindest sieht man bei den allerwenigsten VCL-Klassen so ein führendes A in Eventhandlern.

Ich wünsche allen einen guten Start in die Woche.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Vordefinierte Parameter nur im Interface-Abschnitt?

  Alt 11. Jul 2016, 08:42
Womit sich quasi schon zwangsläufig die Frage aufdrängt: Warum lässt die Klassenvervollständigung das dann per Default weg und kann man dieses Verhalten umkonfigurieren?
Die Parameter werden ja gar nicht weggelassen - nur die Default-Werte.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#13

AW: Vordefinierte Parameter nur im Interface-Abschnitt?

  Alt 11. Jul 2016, 09:51
Die Parameter werden ja gar nicht weggelassen - nur die Default-Werte.
Genau darauf bezog sich ja meine Eingangsfrage. Die Parameter wegzulassen hat Sir Rufo in den Raum gestellt, nicht ich ^^
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Vordefinierte Parameter nur im Interface-Abschnitt?

  Alt 11. Jul 2016, 11:26
AOwner im Create, bei TComponent ... also doch mit A

Das ist nunmal keine "feste" Regel,
aber es gibt mehrere "Vorschlage" von irgendwelchen Delphi-Gurus, wie man es machen können sollte.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Vordefinierte Parameter nur im Interface-Abschnitt?

  Alt 11. Jul 2016, 12:07
Das Create ist ja nicht so sehr ein Eventhandler wie ein Constructor...würde ich mal ganz keck behaupten.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Vordefinierte Parameter nur im Interface-Abschnitt?

  Alt 11. Jul 2016, 12:20
Womit sich quasi schon zwangsläufig die Frage aufdrängt: Warum lässt die Klassenvervollständigung das dann per Default weg und kann man dieses Verhalten umkonfigurieren?
Ich meinte damit vor allem die Parameter an sich. Die Defaultwerte sind in der Tat nicht ganz so wichtig zum Verständnis, da alle Werte korrekt behandelt werden sollten.

Man erkennt daran ja vor allem so etwas wie -1 heißt "kein Eintrag" und größer oder gleich Null ist der Index oder die Nummer eines Eintrags. An der Stelle ist natürlich dann interessant, ob der Wert für "kein Eintrag" Null oder -1 ist, wenn das nicht anderswo dokumentiert ist, aber normalerweise sollte das auch im Quelltext sofort klar werden (anders als die Bedeutung und der Typ eines Parameters).

Trotzdem schreibe ich die Defaultwerte zu Dokumentationszwecken immer dazu.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#17

AW: Vordefinierte Parameter nur im Interface-Abschnitt?

  Alt 12. Jul 2016, 07:29
Bzgl. Default-Werte im Implementation-Abschnitt: Ich habe jetzt mal eine Runde "gehirnt" warum ich das gewohnheitsmäßig so mache, dass die Defaults auch unten mit stehen. Die Erklärung ist so einfach wie banal: Ich habe die Klassenvervollständigung erst relativ spät überhaupt "entdeckt". Vorher habe ich die Routinen immer erst im interface-Teil definiert (mit Defaults) und dann einfach per Copy & Paste nach unten gebracht. So landeten die Defaults gleichermaßen in beiden Abschnitten.

Bzgl. dem "A" vor Parameternamen: Nehmen wir mal beispielsweise einen Klickhandler: procedure TForm1.Button1Click(Sender: TObject); da heißt es ja auch nicht "ASender". Ein Blick in System.Classes.pas zeigt, dass das "A" in Eventhandler-Deklarationen tatsächlich eher die Ausnahme als die Regel ist, in Klassenmethoden und normalen Procedures dagegen genau umgekehrt. Das ändert aber nichts daran, dass man sich beim Codedesign an ein paar Gepflogenheiten halten sollte, auch wenn es technisch keine Notwendigkeit dazu gibt:
  • Pointer mit einem "P" beginnen
  • lokale Variablen mit einem "L"
  • Klassen mit einem "T"
  • Methodenparameter eben mit einem "A"
  • Interfaces mit einen "I"
  • Event-Properties mit einem "On"

Hab ich noch was vergessen? Ergänzungen wären willkommen
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Vordefinierte Parameter nur im Interface-Abschnitt?

  Alt 12. Jul 2016, 08:31
Hab ich noch was vergessen? Ergänzungen wären willkommen
  • Felder in Klassen mit "F"
  • Attribute ohne Prefix aber mit Postfix "Attribute"

Bei den Events gibt es auch noch ein breiteres Spektrum als lediglich das "On". Man denke nur an die Before- und After-Events bei DataSets.

Das "T" wird eigentlich auch für andere Typen verwendet, die nicht zwingend Klassen sein müssen.

Wie bei allen Regeln gibt es aber auch Ausnahmen. So würde ich einem

GermanAnsiString = type AnsiString(1252); definitiv kein T voranstellen, um die Konsistenz mit anderen Typen dieser Art (z.B. UTF8String) zu erhalten.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: Vordefinierte Parameter nur im Interface-Abschnitt?

  Alt 12. Jul 2016, 11:56
Wie bei allen Regeln gibt es aber auch Ausnahmen.
Das ist klar, habe nie was anderes behauptet ^^
GermanAnsiString = type AnsiString(1252);
Hihi damit ziehst du mich jetzt noch ne Weile auf, was? (Nein ich habe das Wawi noch nicht in die Tonne getreten. NOCH nicht...)
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 07:56 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