
Поделюсь несколькими практическими советами по программированию в среде Delphi...
1) Старайтесь не розмещать на одной строке больше одного оператора. Этот совет связан с тем, что при пошаговом трассировке программ (а это, как известно главный способ отладки), компилятор останавливается именно перед выполнением очередной строки кода.
Если же на строке розмещены несколько операторов, вы не сможете проследить работу каждого оператора в этой строке отдельно от других.
2) Виделяйте тела составляющих, условных, циклических операторов, отступлениями. В том случае если вы не будете делать этого, вам достаточно тяжело будет определить какому слову begin отвечает то либо другое слово end.
Object Pascal провоцирует широкое использование составляющих операторов, причем довольно часто бывают они вложенными.
Если пренебречь данным и двумя следующими советами, очень вероятно что вы потратите много времени на устранение ошибки, что вызывает сообщение ";" expected but "." found (не хватает end) или Declaration expected but identifier found (избыток end).
3) У вложенных составляющих операторах, старайтесь обозначать последние слова end небольшими комментариями:
if a> b then
begin
...
if not IsNew then
begin
...
end; / / if not IsNew
...
end; / / if a> b
4) Старайтесь структурировать алгоритм! Если тело вашей подпрограммы содержит более 20 - 30 строк, проанализируйте алгоритм и относительно самостоятельные его части вынесите под вложенные подпрограммы либо реализируйте с помощью вспомогательных классов.
Помните, что уже через 2-3 месяца вам будет трудно вспоминать детали реализации подпрограммы, насчитывающей сотни строк кода.
5) Никогда не скупитесь на комментарии. Небольшие затраты времени на вставку комментариев по ходу составления программы с лихвой окупятся, когда вам понадобится ее модернизировать.
Не откладывайте вставку комментария «на потом» - у меня, к примеру, никогда «потом» на это не хватает времени.
6) Используйте осмысленные идентификаторы. К сожалению, для этого вам понадобится хотя бы начальное знание английского языка, в крайнем случае даже можно украиноязычные идентификаторы записывать латинскими буквами.
В заключение хочу привести небольшой фрагмент исходного кода модуля buttons.pas, который иллюстрирует применение перечисленных правил на практике:
with Canvas do
begin
if NewStyle then
begin
Brush.Color: = clBtnFace;
Brush.Style: = bsSolid;
DC: = Canvas.Handle; {Reduce calls to GetHandle}
if IsDown then
begin {DrawEdge is faster than Polyline}
DrawEdge (DC. R. BDR_SUNKENINNER. BFJOPLEFT); {black}
DrawEdge (DC. R. BDR_SUNKENOUTER. BF_B0TT0MRIGHT);