powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / В каком стиле вы оформляете delphi-код?
25 сообщений из 61, страница 1 из 3
В каком стиле вы оформляете delphi-код?
    #39794366
Artem.1st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь интересует два вопроса:
1) Форматирование delphi-кода (отступы, выравнивание блоков)
2) Стиль идентификаторов (имена переменных, функций, типов)

Раньше над этим не задумывался, и писал программы без форматирования, и именовал идентификаторы как придется(с заглавной буквы или с прописной или через подчеркивание). Но как увидел исходники VCL, понял, насколько они удобочитаемы, т.к. оформлены в едином стиле. Типы классов начинаются с “T”, поля класса с “F”, исключения с “E” и т.п....

Хочу использовать такой же стиль. Где почитать инструкцию ?

Кстати, а как вы оформляете программный код? Может еще лучше?

Покажите свои примеры.
Спасибо.
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794376
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Artem.1st,

гугли: стиль оформления кода delphi, первые несколько ссылок будут нужными.
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794386
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
//для читаимости кода юнита использую такое форматирование:
// табулятор: 3 символа
// слова UNIT / INTERFACE / IMPLEMENTATION заглавными буквами
// классы разделяю ####, секции //////, процедуры в секции ------

UNIT xyz;

...
...

INTERFACE

...
...

IMPLEMENTATION

//##############################################################################
{ TAnyClass }
//##############################################################################
constructor TAnyClass.Create();
begin
   //...
end;
//------------------------------------------------------------------------------
destructor TAnyClass.Destroy();
begin
   //...
end;
////////////////////////////////////////////////////////////////////////////////
procedure TAnyClass.Proc1(Sender: TObject);
begin
   //...
end;
//------------------------------------------------------------------------------
procedure TAnyClass.Proc2();
begin
   //...
end;
//------------------------------------------------------------------------------
procedure TAnyClass.Proc3(....................);
begin
   //...
end;
//##############################################################################
{ TMainForm }
//##############################################################################
procedure TMainForm.OnCreate(Sender: TObject);
begin
   //...
end;
//------------------------------------------------------------------------------
procedure TMainForm.OnActivate(Sender: TObject);
begin
   //...
end;
//------------------------------------------------------------------------------
procedure TMainForm.OnClose(Sender: TObject);
begin
   //...
end;
//------------------------------------------------------------------------------
procedure TMainForm.OnDestroy(Sender: TObject);
begin
   //...
end;
////////////////////////////////////////////////////////////////////////////////
procedure TMainForm.Proc1(...........);
begin
   //...
end;
//------------------------------------------------------------------------------
procedure TMainForm.Proc2(...........);
begin
   //...
end;
//------------------------------------------------------------------------------
procedure TMainForm.Proc3(...........);
begin
   //...
end;
//##############################################################################


END.
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794411
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794449
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Artem.1stПокажите свои примеры.
Спасибо.
0. Стараюсь всё как было у Borland
1. Все операторы - в lowercase, с отступом от предыдущего.
2. Все hard-coded строки(кроме названия полей FieldByName) - resourcestring
3. В Делфи, я всегда пишу if Assigned, а не <> nil
4. Всегда пишу Result:=0, а не ИмяФункции:=0
5. Никогда не использую record, а всегда создаю отдельный класс(record нужен только для WinApi)
6. У диалогов делаю class function Execute (Result:=Dlg.ShowModal=mrOK);
7. Название локальных переменных
Код: pascal
1.
2.
3.
 var 
  List:TStringList; 
  Dlg:TForm


8. if then else - строго на разных строках, т.е. вот так:
Код: pascal
1.
2.
3.
4.
 if Assigned(FOwner) then
  Result:=FOwner
   else
  Result:=InternalGetOwner;


Ну и конечно, всё то, что написано в современных шаблонах.

А) Любой метод класса - не более 5-7 строк кода.
Б) Классы из ~300-500 строк кода. В самых жутких случаях может быть и ~1000. Но ни о каких 3к+ и более речи вообще не идёт. Каждый класс в отдельном файле +-.
В) Никаких циркулярных ссылок друг на друга.
Г) Короче, не делать Говнокод , Божественные объекты и Магические кнопки
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794454
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_BВ) Никаких циркулярных ссылок друг на друга.

см. Сепульки :)

Герой рассказа Ийон Тихий ищет в «Космической энциклопедии» информацию о «сепульках», попадая в цикл косвенной рекурсии:
С. Лем. «Звёздные дневники Ийона Тихого. Путешествие четырнадцатое»Нашёл следующие краткие сведения:
«СЕПУЛЬКИ — важный элемент цивилизации ардритов (см.) с планеты Энтеропия (см.). См. СЕПУЛЬКАРИИ».
Я последовал этому совету и прочёл:
«СЕПУЛЬКАРИИ — устройства для сепуления (см.)».
Я поискал «Сепуление»; там значилось:
«СЕПУЛЕНИЕ — занятие ардритов (см.) с планеты Энтеропия (см.). См. СЕПУЛЬКИ».
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794504
Artem.1st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён,
спасибо за Пример, и идею "форматировать delphi-код на уровне модуля"
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794506
Artem.1st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Arefiev http://edn.embarcadero.com/article/10280

Полезная ссылка. Прямо по теме, и от самого Embarcadero.
Спасибо.
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794508
Artem.1st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B0. ...
1. ...
...

Вижу много полезных советов и расписано по пунктам.
Ценная информация.
Спасибо!
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794525
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Artem.1stDmitry Arefiev http://edn.embarcadero.com/article/10280

Полезная ссылка. Прямо по теме, и от самого Embarcadero.
Спасибо.дурной стиль, абслютно бессмысленное солдафонство
но если "лишь бы строем", то сойдёт

самые мозготрофирующие и вредные части этого гайда:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Example:

  // INCORRECT
  if A < B then begin
    DoSomething; 
    DoSomethingElse;
  end else begin
    DoThis;
    DoThat;
  end;
  
  // CORRECT
  if A < B then 
  begin
    DoSomething; 
    DoSomethingElse;
  end 
  else 
  begin
    DoThis;
    DoThat;
  end;



Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  // INCORRECT
  for i := 0 to 10 do begin
    DoSomething; 
    DoSomethingElse;
  end;
  

  // CORRECT
  for i := 0 to 10 do 
  begin
    DoSomething; 
    DoSomethingElse;
  end;



Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Example:


  // INCORRECT
  while x < j  do begin
    DoSomething; 
    DoSomethingElse;
  end;
  

  // CORRECT
  while x < j do 
  begin
    DoSomething; 
    DoSomethingElse;
  end;


для удобства отладки, корректировки и просмотра, как раз таки всё наоборот
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794530
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Arefiev http://edn.embarcadero.com/article/10280 данное руководство никак не учитывает появление XML-документации в коде, а также регионов {$REGION}. Хотя уже во многих исходниках Tokyo и Rio xml-документация используется.
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794531
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
01.04.2019 11:48, Artem.1st пишет:
> Полезная ссылка. Прямо по теме, и от самого Embarcadero.

при наличии форматировщиков не стоит даже заморачиваться.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794549
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)дурной стиль, абслютно бессмысленное солдафонство
но если "лишь бы строем", то сойдёт

самые мозготрофирующие и вредные части этого гайда:


Нормальный стиль. Человек, придерживающийся этого стиля, без проблем вольётся в любую команду. Но если писать только для себя - то пожалуйста, пишите как угодно!
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794564
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
01.04.2019 12:59, DmSer пишет:
> Человек, придерживающийся этого стиля, без проблем вольётся в любую команду.

я другой такой страны не знаю... (С)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794587
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ctrl + d самый лучший, самый красивый. Самый - самый, самый ленивый
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794683
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSerНормальный стиль. Человек, придерживающийся этого стиля, без проблем вольётся в любую команду. Но если писать только для себя - то пожалуйста, пишите как угодно!человек вольётся в любую команду, но если кто-то хочет за это платить, то какое мне дело до того, как ему хочется деньги тратить
Ctrl+D как выше написали, никто не отменял
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794697
Artem.1st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)дурной стиль, абслютно бессмысленное солдафонство но если "лишь бы строем", то сойдёт
Спасибо за ответ.
может VCL-стиль устарел ... тогда где найти современный вариант оформления Delphi-кода?
Я понял главную цель - код должен быть удочитаемый , т.е. форматируем не для красоты, а чтоб через год быстро глянуть и все сразу вспомнить
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794705
Maxim.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://edn.embarcadero.com/article/10280
Цитата из Help-а:
"Lines should be limited to 80 columns . Lines longer than 80 columns should be broken into one or more continuation lines ...."
Код: pascal
1.
2.
3.
4.
5.
function CreateWindowEx(dwExStyle: DWORD; 
  lpClassName: PChar; lpWindowName: PChar; 
  dwStyle: DWORD; X, Y, nWidth, nHeight: Integer;
  hWndParent: HWND; hMenu: HMENU; hInstance: HINST; 
  lpParam: Pointer): HWND; stdcall;


Такой код удобно читать?
....
Мне кажется, что инструкция писалась в те далекие времена, когда мониторы были маленькими, и строка в 80 столбцов занимала весь экран. По этой же причине, отступ в 2 символа - сейчас маловат. Я давно использую отступ в 3 символа(так наглядней).
Хотя у каждого программиста свой стиль.
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794708
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стиль должен быть един у команды, чтобы адекватно дифф работал...
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794780
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B2. Все hard-coded строки(кроме названия полей FieldByName) - resourcestring
3. В Делфи, я всегда пишу if Assigned, а не <> nil
5. Никогда не использую record, а всегда создаю отдельный класс(record нужен только для WinApi)

А) Любой метод класса - не более 5-7 строк кода.
Б) Классы из ~300-500 строк кода. В самых жутких случаях может быть и ~1000. Но ни о каких 3к+ и более речи вообще не идёт. Каждый класс в отдельном файле +-.

2 - частично спорно
3 - спорно
5 - крайне спорно, я бы даже сказал вредно
А) - 5-7??? Не хотел бы я работать с твоим кодом, честно говоря. Скорее вредно.
Б) Зависит от. И жавовский стиль "по классу на файл" тоже нафиг (должно определяться содержимым)

Да, и отсутствие пробелов после : и вокруг := тоже в минус как по мне

kealon(Ruslan)самые мозготрофирующие и вредные части этого гайда:

А я вот считаю вредным begin в конце строки

По сабжу: я бы посоветовал ориентироваться на тексты VCL, а там уже свой стиль выработаешь.
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794828
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Artem.1stkealon(Ruslan)дурной стиль, абслютно бессмысленное солдафонство но если "лишь бы строем", то сойдёт
Спасибо за ответ.
может VCL-стиль устарел ... тогда где найти современный вариант оформления Delphi-кода?
Я понял главную цель - код должен быть удочитаемый , т.е. форматируем не для красоты, а чтоб через год быстро глянуть и все сразу вспомнитья бы назвал это modula-стиль, излишний begin сбивает, т.е. логичнее и понятне когда end к тому что закрывает, т.е. for - end, while - end.

Использованию begin-end где условно не надо тоже так себе правило, отлаживать в таком варианте удобнее, можно вставить любую строчку без лишних манипуляций, а через сопли if-в с такими оптимизациями ещё пробраться надо.
Видел мазахистов, которые соберут в кучу for, while, if а потом сами теряются.
Аналогично с "лишними" скобками, я думаю если тебе понятнее - пиши

частая ошибка в плюсах:
Код: plaintext
1.
 -a*b


а если п не выпендривались, было бы:
Код: plaintext
1.
 -(a*b)


сможешь догадаться почему?

а VCL гадок, особенно где они в Controls мутят, такое наворотили, что отдельные процы каждую строчку приходится под отладчиком разбирать
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794842
L1G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)самые мозготрофирующие и вредные части этого гайда:
...
для удобства отладки, корректировки и просмотра, как раз таки всё наоборотя тоже так писал (сишники и примкнувшие называют это "египетский стиль", поиск по картинкам пояснит, почему), пока не стал использовать подсветку синтаксиса из CnPack/CnWizards, которая раскрашивает пары begin-end в разные цвета и рисует слева линии между ними. (картинка: 15741636 )
Часто очень удобно, но египетский стиль с ней выглядит явно некрасиво.
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794849
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim.K http://edn.embarcadero.com/article/10280
Цитата из Help-а:
"Lines should be limited to 80 columns . Lines longer than 80 columns should be broken into one or more continuation lines ...."
Код: pascal
1.
2.
3.
4.
5.
function CreateWindowEx(dwExStyle: DWORD; 
  lpClassName: PChar; lpWindowName: PChar; 
  dwStyle: DWORD; X, Y, nWidth, nHeight: Integer;
  hWndParent: HWND; hMenu: HMENU; hInstance: HINST; 
  lpParam: Pointer): HWND; stdcall;


Такой код удобно читать?
....
Мне кажется, что инструкция писалась в те далекие времена, когда мониторы были маленькими, и строка в 80 столбцов занимала весь экран. По этой же причине, отступ в 2 символа - сейчас маловат. Я давно использую отступ в 3 символа(так наглядней).
Хотя у каждого программиста свой стиль.

Я параметров очень много я делаю так:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
function CreateWindowEx(dwExStyle: DWORD; 
                        lpClassName: PChar; 
                        lpWindowName: PChar; 
                        dwStyle: DWORD; 
                        X, Y, nWidth, nHeight: Integer;
                        hWndParent: HWND; 
                        hMenu: HMENU; 
                        hInstance: HINST; 
                        lpParam: Pointer): HWND; stdcall;
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794859
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)излишний begin сбивает, т.е. логичнее и понятне когда end к тому что закрывает, т.е. for - end, while - end
Вообще-то begin это начало составного оператора, а end его окончание. Так что, логичнее и понятнее совсем по-другому.
...
Рейтинг: 0 / 0
В каком стиле вы оформляете delphi-код?
    #39794863
Foxpc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
L1G,

в дельфи же рисуются разноцветные линии
...
Рейтинг: 0 / 0
25 сообщений из 61, страница 1 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / В каком стиле вы оформляете delphi-код?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]