Anweisungen
Anweisungen sind ein oder mehrere Codezeilen gefolgt von einem Strichpunkt. Einfache Ausdrücke haben ein Semikolon, während zusammengesetzte Anweisungen mehr als ein Semikolon haben und folglich aus mehreren einfachen Anweisungen bestehen.
Hier ist eine einfache Anweisung:
Hier ist eine zusammengesetzte (oder strukturierte) Anweisung:
B := C;
A := B;
end;
Einfache Anweisungen
Eine einfache Anweisung enthält einen einzelnen Strichpunkt. Wenn es nötig ist, die Anweisung auf mehrere Zeilen zu verteilen, rücken Sie die zweite Zeile zwei Leerstellen mehr ein als die vorherige Zeile:
MyValue + (SomeVeryLongStatement / OtherLongStatement);
Zusammengesetzte Anweisungen
Zusammengesetzte Anweisungen enden immer mit einem Strichpunkt, außer sie stehen direkt vor einer end-Anweisung. In diesem Fall wäre der Strichpunkt optional.
MyStatement;
MyNextStatement;
MyLastStatement // Semikolon optional
end;
Zuweisungen und Ausdrucksanweisungen
Jede Zeile sollte höchstens eine Anweisung beinhalten. Z. B.:
a := b + c; // RICHTIG
Inc(Count); // RICHTIG
Deklaration lokaler Variablen
Lokale Variablen sollten in "Camel Caps" geschrieben sein, d.h. sie sollten mit einem Großbuchstaben beginnen und jedes enthaltene Wort als erstes einen Großbuchstaben haben. Beginnen Sie Variablen nicht mit einem F, wie es bei der Deklaration von Feldern in Klassendeklarationen der Fall ist.
MyData: Integer;
MyString: string;
Sie können mehrere Variablen desselben Typs in einer Zeile deklarieren:
ArraySize, ArrayCount: Integer;
Dieses Vorgehen wird für Klassendeklarationen nicht empfohlen. Dort sollte jedes Feld in einer eigenen Zeile zusammen mit seinem Typ aufgeführt werden.
Array-Deklarationen
Hier sollte immer vor der geöffneten Klammer "[" und nach der schließenden "]" ein Leerzeichen stehen.
TMyArray = array [0..100] of Char;
if-Anweisung
if-Anweisungen sollten immer mindestens in zwei Zeilen stehen.
Beispiel:
if A < B then DoSomething;
// RICHTIG
if A < B then
DoSomething;
Setzen Sie in zusammengesetzten if-Anweisungen jedes Element, das Anweisungen voneinander trennt in eine neue Zeile:
if A < B then begin
DoSomething;
DoSomethingElse;
end else begin
DoThis;
DoThat;
end;
// RICHTIG
if A < B then
begin
DoSomething;
DoSomethingElse;
end
else
begin
DoThis;
DoThat;
end;
Hier noch einige Möglichkeiten, die als gültig angesehen werden:
if Condition then
begin
DoThis;
end else
begin
DoThat;
end;
// RICHTIG
if Condition then
begin
DoThis;
end
else
DoSomething;
// RICHTIG
if Condition then
begin
DoThis;
end else
DoSomething;
Eine, die in Ungnade gefallen ist, aber eine ehrenvolle Erwähnung verdient hat:
DoThis
else DoThat;
for-Anweisung
Beispiel:
for i := 0 to 10 do begin
DoSomething;
DoSomethingElse;
end;
// RICHTIG
for i := 0 to 10 do
begin
DoSomething;
DoSomethingElse;
end;
while-Anweisung
Beispiel:
while x < j do begin
DoSomething;
DoSomethingElse;
end;
// RICHTIG
while x < j do
begin
DoSomething;
DoSomethingElse;
end;
repeat-until-Anweisung
Beispiel:
repeat
x := j;
j := UpdateValue;
until j > 25;
case-Anweisung
Beispiel:
case Control.Align of
alLeft, alNone: NewRange := Max(NewRange, Position);
alRight: Inc(AlignMargin, Control.Width);
end;
// RICHTIG
case x of
csStart:
begin
j := UpdateValue;
end;
csBegin: x := j;
csTimeOut:
begin
j := x;
x := UpdateValue;
end;
end;
// RICHTIG
case ScrollCode of
SB_LINEUP, SB_LINEDOWN:
begin
Incr := FIncrement div FLineDiv;
FinalIncr := FIncrement mod FLineDiv;
Count := FLineDiv;
end;
SB_PAGEUP, SB_PAGEDOWN:
begin
Incr := FPageIncrement;
FinalIncr := Incr mod FPageDiv;
Incr := Incr div FPageDiv;
Count := FPageDiv;
end;
else
Count := 0;
Incr := 0;
FinalIncr := 0;
end;
try-Anweisung
Beispiel:
try
try
EnumThreadWindows(CurrentThreadID, @Disable, 0);
Result := TaskWindowList;
except
EnableTaskWindows(TaskWindowList);
raise;
end;
finally
TaskWindowList := SaveWindowList;
TaskActiveWindow := SaveActiveWindow;
end;
