Все переменные с их типами должны быть объявлены на различных строках.
Простые операторы содержат одну точку с запятой. Если Вам необходимо разделить оператор, то перенесите продолжение оператора на следующую строку с отступом в два пробела.
Пример | 1MyValue :=
2 MyValue + (SomeVeryLongStatement / OtherLongStatement); |
Составные операторы всегда заканчиваются точкой с запятой.
Пример | 1begin
2 MyStatement;
3 MyNext Statement;
4 MyLastStatement;
5end; |
Каждое присвоение и каждое выражение должно располагаться на разных строках.
Оператор if всегда должен располагаться по крайней мере на двух строках
Неправильно | if A < B then DoSomething; |
Правильно | 1if A < B then
2 DoSomething; |
В случае составного оператора необходимо поместить каждый оператор на новую строку.
Неправильно | 1if A < B then begin
2 DoSomething;
3 DoSomethingElse;
4 end else begin
5 DoThis;
6 DoThat;
7 end; |
Правильно | 01if A < B then
02 begin
03 DoSomething;
04 DoSomethingElse;
05 end
06 else
07 begin
08 DoThis;
09 DoThat;
10 end; |
Все остальные варианты расположения операторов не рекомендуются и не одобряются, хотя и являются синтаксически правильными.
Неправильно | 1for i := 0 to 10 do begin
2 DoSomething;
3 DoSomethingElse;
4 end; |
Правильно | 1for i := 0 to 10 do
2 begin
3 DoSomething;
4 DoSomethingElse;
5 end;
6
7 for I := 0 to 10 do
8 DoSomething; |
Неправильно | 1while x < j do begin
2 DoSomething;
3 DoSomethingElse;
4 end; |
Правильно | 1while x < j do
2 begin
3 DoSomething;
4 DoSomethingElse;
5 end;
6
7 while x < j do
8 Something; |
Правильно | 1repeat
2 x := j;
3 j := UpdateValue;
4 until j > 25; |
Несмотря на то, что существует множество синтаксически правильных конструкций, одобренной и рекомендованной считается следующая:
Правильно | 01case 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;
21 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;
12end; |