Все переменные с их типами должны быть объявлены на различных строках.
Простые операторы содержат одну точку с запятой. Если Вам необходимо разделить оператор, то перенесите продолжение оператора на следующую строку с отступом в два пробела.
Пример | MyValue :=
MyValue + (SomeVeryLongStatement / OtherLongStatement); |
Составные операторы всегда заканчиваются точкой с запятой.
Пример | 1begin
2 MyStatement;
3 MyNext Statement;
4 MyLastStatement;
end; |
Каждое присвоение и каждое выражение должно располагаться на разных строках.
Оператор if всегда должен располагаться по крайней мере на двух строках
Неправильно | if A < B then DoSomething; |
Правильно | if A < B then
DoSomething; |
В случае составного оператора необходимо поместить каждый оператор на новую строку.
Неправильно | 1 if A < B then begin
2 DoSomething;
3 DoSomethingElse;
4 end else begin
5 DoThis;
6 DoThat;
7 end;
|
Правильно | 1 if A < B then
2 begin
3 DoSomething;
4 DoSomethingElse;
5 end
6 else
7 begin
8 DoThis;
9 DoThat;
end; |
Все остальные варианты расположения операторов не рекомендуются и не одобряются, хотя и являются синтаксически правильными.
Неправильно | 1 for i := 0 to 10 do begin
2 DoSomething;
3 DoSomethingElse;
4 end;
|
Правильно | 1 for i := 0 to 10 do
2 begin
3 DoSomething;
4 DoSomethingElse;
5 end;
6
7 for I := 0 to 10 do
8 DoSomething;
|
Неправильно | 1 while x < j do begin
2 DoSomething;
3 DoSomethingElse;
end; |
Правильно | 1 while x < j do
2 begin
3 DoSomething;
4 DoSomethingElse;
5 end;
6
7 while x < j do
8 Something;
|
Правильно | 1 repeat
2 x := j;
3 j := UpdateValue;
4 until j > 25;
|
Несмотря на то, что существует множество синтаксически правильных конструкций, одобренной и рекомендованной считается следующая:
Правильно | 01 case LCode of
02 1, 3:
03 begin
04 Incr := FIncrement + 1;
05 FinalIncr := FIncrement div FLineDiv;
06 Count := FLineDiv;
07 end;
08 2, 4:
09 begin
10 Incr := FPageIncrement;
11 FinalIncr := Incr + 1;
12 Incr := Incr div FPageDiv;
13 Count := FPageDiv;
14 end;
15 else
16 begin
17 Count := 0;
18 Incr := 0;
19 FinalIncr := 0;
20 end;
end; |
Несмотря на то, что существует множество синтаксически правильных конструкций, одобренной и рекомендованной считается следующая:
Правильно | 01try
02 try
03 EnumItems(CurrentThreadID, LDisable, 0);
04 Result := TaskList;
05 except
06 EnableItems(TaskList);
07 raise;
08 end;
09finally
10 TaskList := SaveList;
11 TaskActive := SaveActive;
end; |