![]() |
Allgemeine Delphisyntax
Hallo zusammen,
mir ist bisher noch kein Delphibuch bzw. kein Tutorial über den Weg gelaufen, dass eine allgemein gültige, anerkannte und übersichtliche Delphisyntax verwendet und diese einem nahe bringt. Nun, ich will aber eine solche verwenden... Und hier sollt ihr mir weiterhelfen. :-D Wer also denkt, er verwende eine Syntax, die obig genannte Bedingungen erfüllt, bitte ich hier zu posten... Danke für euer Verständnis für eine so exotische Frage - und natürlich eure Antworten. :mrgreen: Gruß, Marco P.S.: Ich mach mal den Anfang...
Delphi-Quellcode:
unit SyntaxExample;
// USES uses Windows, SysUtils; // ... // PROTOTYPEN procedure MyPublicProc(); type // TYPENDEKLARATION (RECORDS) TMyRecord = record Membr1, // Member-Reihenfolge: Membr2: Integer; // siehe "Globale Variablendeklarartion" Membr3: String; end; // TYPENDEKLARATION (KLASSEN) TMyClass = class private FMyProp: Integer; FSomewhat: Cardinal; procedure MyProcedure(AParam1, AParam2: String; AInt: Integer); function MyFunc(): Integer; function GetMyProp(): Integer; procedure SetMyProp(AValue: Integer); protected // ... public property MyProp: Integer read GetMyProp write SetMyProp; property Somewhat: Cardinal read FSomewhat write FSomewhat; published // ... end; // GLOBALE VARIABLENDEKLARATION var Obj1: TBitmap; // 1. Objekte Obj2: TStringList; hHandle: THandle; // 2. Handles pPtr: Pointer; // 3. Pointer Int: Integer; // 4. Ganzzahl-Variablen Dbl: Double; // 5. Gleitpunkt-Variablen Str: String; // 6. Strings implementation // IMPLEMENTATION procedure MyPublicProc(); // Private Variablendeklaration var Obj: TBitmap; // 1. Objekte hHandle2: THandle; // 2. Handles pPtr: Pointer; // 3. Pointer Int2: Integer; // 4. Ganzzahl-Variablen Dbl2: Double; // 5. Gleitpunkt-Variablen Str2: String; // 6. Strings begin end; procedure MyPrivateProc(); begin end; // Parameter procedure TMyClass.MyProcedure(AParam1, AParam2: String; AInt: Integer); begin function TMyClass.MyFunc(): Integer; begin Result := 100; end; function TMyClass.GetMyProp(): Integer; begin // ... Result := FMyProp; end; procedure TMyClass.SetMyProp(AValue: Integer); // ... FMyProp := AValue; end; |
Re: Allgemeine Delphisyntax
Ich habe noch nie gesehen, dass bei Pascal/Delphi parameterlose Prozeduren mit leeren Klammern benutzt werden. Das kenne ich von JavaScript, C, usw. Aber nicht von Delphi.
Ansonsten gibt´s doch IMHO eine gültige, vorgeschriebene Syntax, an die man sich halten sollte. |
Re: Allgemeine Delphisyntax
|
Re: Allgemeine Delphisyntax
Hallo,
danke, habe mir den Guide runtergeladen... Das war's eigentlich, was ich gesucht habe. :-D Gruß, Marco |
Re: Allgemeine Delphisyntax
Zitat:
Zitat:
Bis auf Spaces und ein paar anderen Kleinigkeiten halte ich mich auch an den Pascal guide. Zum Beispiel find ich das hier...
Delphi-Quellcode:
lesbarer als das:
type
TMiep = class private fSomeField :TSomeType; public DoSomething(aSomeParameter :TSomeType); end;
Delphi-Quellcode:
Gegen das große T kann man wohl nichts machen, aber ich sehe absolut keinen rationalen Grund, warum ich den Lesefluss durch A und F kaputtmachen sollte.
type
TMiep = class private FSomeField :TSomeType; public DoSomething(ASomeParameter :TSomeType); end; Der erste große Buchstabe springt nunmal ins Auge, da ist es einfach nur ärgerlich wenn einem ein großes A oder F reinpfuschen. Nach einer Weile mit C# habe ich es mir auch angewohnt parameterlose Funktionen mit () zu verwenden. Das unterscheidet sie sofort von Properties. ;) Mag sein, dass ich da ein wenig strenge Vorstellungen habe, ich hasse es einfach, wenn ich fremden Code nicht so schnell überfliegen kann, wie es möglich wäre... ;) Aber das sind nur meine 2 cents.. ;) btw: Sollte man hier dringend die Tab size einstellen. Im Quellcode sind es 3 Zeichen und im Beitragseditor sind's 8. :shock: Als Pascalisti sollten es 2 oder 4 sein. ;) |
Re: Allgemeine Delphisyntax
Hi Robert,
Delphi-Quellcode:
Ich finde, dass die großen Buchstaben schon ok sind. Dadurch kann man direkt sehen "ah "F", das ist ein Feld". Genauso bei Parametern. Ich kann den Namen dahinter noch genauso gut lesen. Das ist auch wohl der Grund wieso ich diese Schreibweise bevorzuge und auch verwende - wobei ich manchmal das "A" vor den Argumenten weglasse. ;)
type
TMiep = class private FSomeField :TSomeType; public DoSomething(ASomeParameter :TSomeType); end; mfG mirage228 |
Re: Allgemeine Delphisyntax
Zitat:
Code:
und seit JavaScript und PHP klammere ich auch in Delphi wie ein Bekloppter. :wall:
MessageBox.Show("Huhu", "Hihi");
Delphi-Quellcode:
Aber trotz all dem finde ich solche leeren Klammern
if(IrgendeineSimpleBedingung) then
begin end;
Delphi-Quellcode:
irgendwie immer noch unpassend für Delphi. :stupid:
function Miep(): boolean;
|
Re: Allgemeine Delphisyntax
Zitat:
Jupp sowas rutscht mir oft reflexartig raus. In der Deklaration it es natürlich total Bohne, schließlich steht ja method/function/procedure davor. ;) Zitat:
Was wenn sich der Leser an deinen Stil gewöhnt und sich dann ärgert wenn die vermeintliche Property ein Parameter ist? :zwinker: [edit=alcaeus]Doppelpost geloescht. Mfg, alcaeus[/edit] |
Re: Allgemeine Delphisyntax
Zitat:
mfG mirage228 |
Re: Allgemeine Delphisyntax
Hallo zusammen,
Zitat:
Zitat:
Was ich allerdings auf gut Deutsch gesagt eine Schweinerei finde, ist, dass selbst der Style Guide und auch viele Delphi-Programmierer das Parameter-A nicht oder nur mal und mal nicht benutzen... Ich jedenfalls setzte vor jeden Parameter ein A. Zitat:
So, nun zu meinen :wall: beim Lesen des Style Guides: Zitat:
Zitat:
Delphi-Quellcode:
ist doch tausend mal besser (und im Code schneller zu erkennen) als
var
oForm: TForm; hForm: THandle pData: Pointer; aData: array of Byte;
Delphi-Quellcode:
var
Form: TForm; FormHandle: THandle; DataPtr: Pointer; Data: array of Byte; Zitat:
Zitat:
Zitat:
Soweit meine Meinung(en). Was meint ihr dazu? Gruß, Marco |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 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 by Thomas Breitkreuz