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