Sign in Join
Wiki copytemporary

Lazarus Tutorial/ru: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11Lazarus - это бесплатный инструмент разработки с открытым исходным кодом для [[FPC|Free Pascal compiler]], который, в свою очередь, также является бесплатным и с открытым исходным кодом. [[IDE|Интегрированная среда разработки]] Lazarus (IDE, см. [[Screenshots|Скриншоты]])) - это среда программирования для создания автономных графических и консольных приложений.
22
33В настоящее время Lazarus работает на [[Linux]], macOS, FreeBSD и Windows и предоставляет настраиваемый редактор исходного кода и среду создания визуальных форм вместе с менеджером пакетов, отладчиком и полной интеграцией графического интерфейса с Free Pascal [[Compiler]] ,
44
55## Обзор
66
77Lazarus это бесплатный инструмент разработки с открытым кодом, предназначенный для также бесплатного компилятора с открытым кодом Free Pascal (object pascal). IDE Lazarus ([screenshot](http://lazarus-ccr.sourceforge.net/kbdata/lazide.jpg)) это стабильная богатая возможностями среда разработки для создания самостоятельных графических и консольных приложений. В настоящее время она работает на Linux, FreeBSD и Win32 и предоставляет настраиваемый редактор кода и визуальную среду создания форм вместе с менеджером пакетов, отладчиком и GUI полноcтью интегрированным с компилятором FreePascal.
88
99## Начнем - Ваша первая Lazarus-программа!
1010
1111(Благодарим User:Kirkpatc)
1212
1313Найдите, установите([[Installing Lazarus]]) и запустите Lazarus, который кроме того содержит и компилятор FreePascal.
1414
1515На экране появятся несколько окон: главное окно вверху, Инспектор Объектов (Object Inspector) слева, занимаюший большую часть экрана Редактор Кода Lazarus (Lazarus Source Editor), и готовое к использованию окно Form1 поверх окна Редактора.
1616
1717В главном окне сверху, под строкой меню располагается строка вкладок. Если вкладка 'Standard' еще не выбрана, выберите ее, щелкнув на ней левой кнопкой мыши. Затем найдите иконку Button (прямоугольник с текстом 'Ok' на нем) и щелкните на ней мышкой. Затем щелкните в окне Form1, где-нибудь слева от середины. Появится затененный прямоугольник с надписью 'Button1'. Вновь щелкните на иконке Button на вкладке Standard и щелкните на Form1 где-нибудь справа от центра: появится прямоугольник с надписью 'Button2'.
1818
1919Теперь щелкните на Button1 чтобы выбрать ее. Инспектор Объектов отобразит свойства объекта Button1. Не далеко от верхнего края располагается свойство с именем 'Caption', в котором отображается значение 'Button1'. Щелкните в этой строке и измените 'Button1' на 'Нажми меня' (*прим.пер.: в оригинальном тексте 'Press'. Далее будет приводиться только русский текст надписей, а оригинальный можно посмотреть на странице с английским текстом*). Если вы нажмете клавишу ENTER или щелкнете в другой строке, то увидите, что надпись на первой кнопке Form1 изменилась на 'Нажми меня'. Теперь щелкните в Инспекторе объектов на вкладке Events (События) и вы увидите различные события, на которые может реагировать кнопка. Среди них OnClick, OnEnter, OnExit и так далее. Щелкните в строке справа от OnClick: появится маленькая кнопка с троеточием (...). Если вы ее нажмете, то автоматически перенесетесь в Редактор Кода и курсор окажется в участке кода, начинающегося с:
2020
21-` procedure TForm1.Button1Click(Sender: TObject);`\
22-` begin`\
23-`   {здесь наберите:}  Button1.caption := 'Нажми еще раз';`\
24-`   {Редактор уже вставил завершение процедуры}`\
25-` end;`
21+``` pascal
22+ procedure TForm1.Button1Click(Sender: TObject);
23+ begin
24+ {здесь наберите:} Button1.caption := 'Нажми еще раз';
25+ {Редактор уже вставил завершение процедуры}
26+ end;
27+```
2628
2729Нажмите F12 для переключения от Редактора Кода к окну формы Form1.
2830
2931Теперь отредактируйте свойства кнопки2 (Button2): щелкните на Button2 для отображения ее свойств в Инспекторе Объектов. Измените свойство Caption на 'Выход' вместо 'Button2'. Теперь перейдите на вкладку событий (Events) и щелкните в строке OnClick. Щелкните на кнопке с троеточием и перенеситесь в Редактор Кода, в тело другой процедуры:
3032
31-` procedure TForm1.Button2Click(Sender: TObject);`\
32-` begin`\
33-` {здесь наберите:}   Close;`\
34-` {Редактор уже вставил завершение процедуры} `\
35-` end;`
33+``` pascal
34+ procedure TForm1.Button2Click(Sender: TObject);
35+ begin
36+ {здесь наберите:} Close;
37+ {Редактор уже вставил завершение процедуры}
38+ end;
39+```
3640
3741Теперь нажмите F12 чтобы увидеть форму Form1 вновь. Теперь вы можете попытаться скомпилировать. Простейшим способом сделать это является выбор в главном меню пункта 'Run' а в появившемся подменю пункта 'Run'. Вы также можете просто нажать клавишу F9. Сначала произойдет компиляция, а затем (если все в порядке) линковка и запуск вашей программы.
3842
3943Промелькнет несколько текстовых окон и будут выведены различные сообщения компилятора, а потом вновь появится окно формы Form1, но уже без точечной сетки; это и есть реальное главное окно вашего приложения, и оно ожидает нажатия кнопок или любого другого вашего действия.
4044
4145Попробуйте щелкнуть на кнопке 'Нажми меня'. Вы увидите, что надпись на ней сменится на 'Нажми еще раз'. Если вы нажмете еще раз, то на кнопке так и останется надпись 'Нажми еще раз'!!
4246
4347Теперь щелкните на кнопке с надписью 'Выход'. Окно закроется и программа завершится. Вновь появится окно формы Form1 с точечной сеткой, готовое для редактирования.
4448
4549Теперь (и вообще почаще) вы можете сохранить свою работу выбрав последовательно пункты меню Project \> Save Project As \> имя_вашего_файла.pas
4650
4751### Вторая попытка.
4852
4953Вновь откройте сохраненный вами проект.
5054
5155На форме Form1 щелкните на кнопке 'Нажми меня' (Button1) чтобы выбрать ее. В Инспекторе Объектов перейдите на вкладку событий (Events), щелкните на строке справа от события OnClick, щелкните на кнопке с многоточием, чтобы перенестись к соответствующему участку кода в Редакторе.
5256
5357Измените код, на приведенный ниже:
5458
55-` procedure TForm1.Button1Click(Sender: TObject);`\
56-`{Используем свойство Tag, устанавливая его в положения 0 или 1}`\
57-` begin`\
58-`   if Button1.tag =0 then`\
59-`   begin`\
60-`     Button1.caption := 'Нажми еще раз';`\
61-`     Button1.tag := 1`\
62-`   end else`\
63-`   begin`\
64-`     Button1.caption := 'Нажми меня';`\
65-`     Button1.tag := 0`\
66-`   end`\
67-` end;`
59+``` pascal
60+ procedure TForm1.Button1Click(Sender: TObject);
61+{Используем свойство Tag, устанавливая его в положения 0 или 1}
62+ begin
63+ if Button1.tag =0 then
64+ begin
65+ Button1.caption := 'Нажми еще раз';
66+ Button1.tag := 1
67+ end else
68+ begin
69+ Button1.caption := 'Нажми меня';
70+ Button1.tag := 0
71+ end
72+ end;
73+```
6874
6975Сохраните проект, перекомпилируйте и запустите. Левая кнопка теперь циклически меняет свой текст с одного сообщения на другое.
7076
7177Сделай дело - гуляй смело!
7278
7379Если вы хотите писать консольные или программы с текстовым интерфейсом на Pascal (например, если вы следуете стандартному курсу изучения программирования на Pascal, или вам нужно написать программу для работы в командном режиме или системную программу) вы также можете использовать Lazarus для написания, компилирования и выполнения ваших программ. Это прекрасная среда для программирования на Pascal. Смотри [[Console Mode Pascal]].
7480
7581## Редактор
7682
7783Когда вы запускаете Lazarus в первый раз, на вашем рабочем столе появляется набор несвязанных 'плавающих' окошек.
7884
7985Первое, расположенное в самом верху рабочего стола имеет название **Lazarus Editor vXXXXXX - project1** (название зависит от используемой версии и названия открытого проекта). Это главное окно управления проектом и оно содержит Главное Меню и Палитру Компонентов (Component Palette).
8086
8187![](/wiki-images/2/2d/Lazmain.jpg)
8288
8389Строкой ниже располагается Главное Меню с обычными пунктами File, Edit, Search, View и некоторыми специфичными для Lazarus. Ниже Слева располагается набор кнопок, предоставляющих быстрый доступ к некоторым функциям главного меню, и справа - Палитра Компонентов. *(Примечание переводчика: если при установке вы выбираете русский язык, то весь интерфейс будет на русском, то есть пункты меню, названия окон и вкладок, а также подсказки. В связи с этим далее все названия указаны на русском, а в скобках (на английском) языке. В любой момент можно переключить язык интерфеса в пункте меню **Окружение**. )*
8490
8591Под окном редактора Lazarus слева располагается окно **[Инспектора Объектов](http://lazarus-ccr.sourceforge.net/kbdata/objinsp.jpg)**, а справа **[Редактор Исходного Кода (Lazarus Source Editor)](http://lazarus-ccr.sourceforge.net/kbdata/editor.jpg)**. Может быть и другое окно меньшего размера, озаглавленное **[Form1](http://lazarus-ccr.sourceforge.net/kbdata/blankform.jpg)**, расположенное поверх Редактора Исходного Кода. Если его в данный момент не видно, то можно переключиться к нему, нажав клавишу **F12**, которая позволяет переключаться между Редактором Исходного Кода и Окном Формы. Окно формы это то место, где вы разрабатываете графический интерфейс вашей программы, а в Редакторе Исходного Кода отображается разрабатываемый вами Pascal-код вашего приложения. Использование Инспектора Объектов детально обсуждается ниже после описания Палитры Компонентов.
8692
8793Когда вы начинаете новый проект (или впервые запускаете Lazarus) по умолчанию создается стандартная форма, состоящая из прямоугольника с точечной сеткой для более легкого позиционирования различных компонентов на форме и системная строка сверху, которая обычно содержит кнопки **Свернуть**, **Развернуть** и **Закрыть**. Если вы щелкните мышкой в любом месте формы, вы увидите ее свойства в Инспекторе Объектов у левого края экрана.
8894
8995Другие окна, которые могут появиться в процессе работы: **[Инспектор проектов](http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg)**, содержащий сведения о файлах, включенных в проект, и позволяющий вам добавлять и удалять файлы из проекта; Окно **Messages** (**Сообщения**), отображающее сообщения компилятора, ошибки и отчеты по вашему проекту; если Lazarus был запущен из терминала, то это окно остается запущенным и в нем отображаются подробные сообщения компилятора.
9096
9197### Главное меню
9298
9399For a detailed description of every menu item which is accessible from the Lazarus IDE Main Menu, please refer to the [[Main menu/ru]] page.
94100
95101### Кнопочная панель
96102
97103Маленькая панель в левой верхней части основного окна, слева от палитры компонентов, имеет набор кнопок, повторяющих наиболее часто применяемые выборы основного меню:
98104
99105
100106**Создать модуль**, **Открыть** (со стрелкой вниз для отображения списка недавно использованных файлов), **Сохранить**, **Сохранить все**, **Создать форму**, **Переключить Форма/Модуль** (т.е. показать либо форму, либо модуль исходного кода), **Показать модули**, **Показать формы**, **Запуск** (т.е. компиляция и выполнение), **Пауза**, **Шаг со входом**, **Шаг в обход** (последние два – функции отладчика).
101107
102108## Палитра Компонентов
103109
104110Это панель инструментов с вкладками, показывающая множество иконок, представляющих обычно применяемые компоненты при построении форм.
105111
106112Каждая вкладка представляет собой набор иконок, составляющих функциональную группу компонентов. Самая левая иконка на каждой вкладке в виде стрелочки называется Средством Выбора.
107113
108114Если навести курсор мыши на иконку палитры компонентов без нажатия, появится название данной компоненты. Заметьте, что каждое название начинается с 'T', что означает 'Тип', а точнее 'Класс' компоненты. При выборе компоненты для размещения на форме, Class добавится в секцию **type** раздела **interface** модуля (обычно в виде части на TForm1), и **instance** (образец) этого класса добавится в секцию **var** (обычно как переменная Form1). Все **Methods** (методы), разработанные для формы или ее компонент (процедуры или функции) будут помещены в раздел **implementation** модуля.
109115
110116В приведенном ниже списке компонентов можно найти связи с файлами, которые содержат описания модулей, в которых они найдены. Если нужно узнать о свойствах конкретного компонента, зачастую следует обратить внимание на Наследование этого компонента и просмотреть свойства базового типа, из которого он произведен. Например, для изучения TMaskEdit очень полезно просмотреть TCustomMaskEdit.
111117
112118**ВКЛАДКИ** (их имена понятны и не требуют разъяснений):
113119
114120- **[Standard](http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls)**
115121
116122![](/wiki-images/4/4d/Component_Palette_Standart.png)
117123
118124
119125*Наиболее часто применяемые компоненты:* [TMainMenu](http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit), [TPopupMenu](http://lazarus-ccr.sourceforge.net/index.php?wiki=MenuUnit), [TButton](http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt), TLabel, TEdit, TMemo, TToggleBox, TCheckBox, TRadioButton, TListBox, TComboBox, TScrollBar, TGroupBox, TStaticText, [TRadioGroup](http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls), TCheckGroup, [TPanel](http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls), TActionList
120126
121127- **[Additional](http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls)**
122128
123129![](/wiki-images/7/7d/Component_Palette_Additional.png)
124130
125131
126132*Дополнительные, часто используемые:* [TBitBtn](http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt), [TSpeedButton](http://lazarus-ccr.sourceforge.net/index.php?wiki=ButtonsTxt), [TImage](http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls), TShape, TBevel, TPaintBox, TNotebook, TLabeledEdit, TSplitter, [TMaskEdit](http://lazarus-ccr.sourceforge.net/index.php?wiki=MaskEdit), TCheckListBox, [TScrollBox](http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt), [TApplicationProperties](http://lazarus-ccr.sourceforge.net/index.php?wiki=FormsTxt), TStringGrid, TDrawGrid, TPairSplitter
127133
128134- **[Common Controls](http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls)**
129135
130136![](/wiki-images/4/4a/Component_Palette_Common_Controls.png)
131137
132138
133139TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList
134140
135141- **[Dialogs](http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt)**
136142
137143![](/wiki-images/7/72/Component_Palette_Dialogs.png)
138144
139145
140146TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog
141147
142148Некоторые полезные процедуры или функции группы **[Dialog](http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples)** не размещены на Палитре, но легко применяются путем прямого вызова из исходной программы.
143149
144150Несколько хороших примеров использования компонентов находятся в папке \$LazarusPath/lazarus/examples исходной установки. Многие программы показывают способы применения диалогов и других компонентов без использования IDE и палитры компонентов, при наличии файла определения отдельной формы: все компоненты явно и полно определены в основной программе. Другие программы примеров полностью используют IDE.
145151
146152Некоторые примеры не будут сначала работоспособны: понадобится настройка путей и разрешений для файлов и папок. При желании скомпилировать пример убедитесь, что для файлов и папок установлены разрешения read/write/execute, или скопируйте файлы в папку с подходящими разрешениями.
147153
148154Попробуйте выполнить программу 'testall' для просмотра меню доступных компонентов совместно с маленькими примерами тестовых форм для большинства из них; затем просмотрите исходный код для понимания принципов их работы!
149155
150156- **Misc**
151157
152158![](/wiki-images/8/8e/Component_Palette_Misc.png)
153159
154160
155161[TColorButton](http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt), TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox
156162
157163- **Data Controls**
158164
159165![](/wiki-images/6/62/Component_Palette_DataControls.png)
160166
161167
162168*Компоненты работы с данными, которые в основном копируют стандартную и дополнительную группы, но применительно к базам данных:* TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid
163169
164170- **Data Access**
165171
166172![](/wiki-images/c/cc/Component_Palette_DataAccess.png)
167173
168174
169175TDatasource
170176
171177- **System**
172178
173179![](/wiki-images/f/fe/Component_Palette_System.png)
174180
175181
176182[TTimer](http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls), TIdleTimer, TProcess
177183
178184- **SynEdit**
179185
180186![](/wiki-images/2/22/Component_Palette_SynEdit.png)
181187
182188
183189*Группа компонентов для сопряжения с другими языками и сервисными программами. SynEdit – продвинутый редактор для Borland Delphi, Kylix and C++Builder. Он поддерживает подцветку синтаксиса и завершение кода, экспорт в html, tex и rtf. Полное управление VCL/CLX, считая, что это не оболочка для управления Microsoft Windows, не нужна библиотека времени выполнения; это делает SynEdit кроссплатформенным компонентом. Также планируется совместимость с FreePascal, и SynEdit является компонентом редактирования в Lazarus IDE.* См. [synedit at sourceforge](http://synedit.sourceforge.net). TSynEdit, TSynAutoComplete, TSynExporterHTML, TSynMacroRecorder, TSynMemo, TSynPasSyn, TSynCppSyn, TSynJavaSyn, TSynPerlSyn, TSynHTMLSyn, TSynXMLSyn, TSynLFMSyn, TSynUNIXShellScriptSyn, TSynCssSyn, TSynPHPSyn, TSynTeXSyn, TSynSQLSyn, TSynMultiSyn
184190
185191Для работы с палитрой нужно открыть форму (если форма не открыта, выбрать Файл -\> Создать Форму). Щелкните на иконке нужного компонента на нужной вкладке Палитры, затем щелкните на форме, и этот компонент появится на ней. После этого можно выбрать новый компонент щелчком мыши, переместить его в желаемое место и подогнать размеры. Эти установки можно сделать также с помощью Инспектора Объектов, регулируя значения соответствующих свойств данного компонента.
186192
187193При установке дополнительных компонентов, разработанных самостоятельно, или полученных со стороны, появятся дополнительные вкладки с соответствующими иконками на Палитре компонентов. Эти новые компоненты могут быть выбраны и использованы на формах, как и те, что поставлены по умолчанию.
188194
189195## Отладчик
190196
191197Писал и редактировал: Romlo
192198
193199### Настройки
194200
195201Чтобы пользоваться отладчиком, должны быть установлены галочки:
196202
197203проект \> параметры компилятора \> вкладка "Связывание" \>
198204
199205- галочка "Выдавать номера строк в ошибках времени исполнения"
200206
201207- галочка "Генерировать отладочную информацию для GDB (замедляет сборку)"
202208
203209### Кнопки
204210
205211Управление отладкой производится вот этими пятью кнопками:
206212
207213![](/wiki-images/b/b9/Buttons_debugger.PNG)
208214
209215- Зеленый треугольник - "Запуск" - скомпилировать и запустить приложение под отладчиком.
210216- Вертикальные палочки - "Пауза" - здесь серые, а вообще синие - это пауза, можно приостановить приложение, например, при трассировке.
211217- Квадратик - "Останов" - здесь серый, а вообще красный - закрыть приложение. Это если оно повисло (напр. в бесконечном цикле).
212218
213219Остальные две кнопки используются при трассировке программы, про которую мы поговорим подробнее.
214220
215221### Трассировка
216222
217223Трассировать программу - значит выполнять её шаг за шагом, построчно. Для трассировки какого-либо участка программы, нужно установить в нужном месте "точку останова". Для этого надо найти начало участка программы в редакторе кода, а затем щёлкнуть по его номеру слева. При этом сама строчка выделится красным, а рядом с номером появится красный кружок.
218224
219225![](/wiki-images/0/01/Str_debugger.PNG)
220226
221227После нажатия на "запуск", знак вопроса в кружке должен смениться галочкой. Если вместо галочки там крестик, значит, точка останова не была установлена по каким-то причинам. В этом случае лучше ещё раз проверить настройки и перезапустить Lazarus. Если же всё получилось, продолжим. Далее, нужно вызвать то событие, при котором начнёт выполняться данный участок кода (то есть если вы поставили точку останова в начале button1_click, например, то теперь вам надо нажать эту кнопку). При этом должен показаться редактор кода. Ранее красная строчка теперь станет серой, а галочка в кружке сменится стрелочкой:
222228
223229![](/wiki-images/9/92/Str2_debugger.PNG)
224230
225231Вот теперь и вспомним про те две кнопки, что мы не рассмотрели. первая называется "Шаг со входом", вторая - "Шаг в обход". Смысл первой заключается в том, что если сейчас вы "стоите" на строчке с какой-то процедурой или функцией, то нажав эту кнопку, вы перейдете на эту процедуру и будете выполнять пошагово уже её. Когда она закончится, вы вернётесь обратно, но уже на следующую строку. Как несложно догадаться, нажав на вторую кнопку, вы не зайдёте в процедуру, она просто выполнится, а вы перейдёте на следующую строку.
226232
227233Отдельно надо сказать, что "Шаг со входом" не работает, если функция, на которой вы "стоите", экспортирована из библиотеки (например, в WinAPI-функцию вы зайти не сможете).
228234
229235Также имеется возможность просматривать содержимое переменных, для этого надо просто навести на неё мышку прямо в редакторе кода, во всплывающей подсказке будет указан адрес переменной и её содержимое:
230236
231237![](/wiki-images/e/e9/Var_debugger.png)
232238
233239Ну и в дополнение к сказанному добавлю, что чтобы продолжить выполнение программы в обычном режиме (если вам надоело её трассировать), достаточно нажать кнопку "запуск". Ну а чтобы убрать точку останова, надо закрыть приложение и ещё раз щёлкнуть по номеру строки, на которой эта точка стоит. ну и после этого заново откомпилировать приложение.
234240
235241## Файлы Lazarus
236242
237-`   (Благодарим Kevin Whitefoot.)`\
238-`   (ДОбавления от Giuseppe Ridinò, `User:Kirkpatc` и Tom Lisjac)`
243+```text
244+ (Благодарим Kevin Whitefoot.)
245+ (ДОбавления от Giuseppe Ridinò, User:Kirkpatc и Tom Lisjac)
246+```
239247
240248Когда вы выполняете сохранение на самом деле вы сохраняете два файла:
241249
242-`  xxx.pas и yyy.lpr `
250+```text
251+ xxx.pas и yyy.lpr
252+```
243253
244254(Вы сохраняете и больше, но это те файлы, которым вы даете имена). Файл проекта (lpr) и файл модуля (pas) должны иметь разные имена, потому что Lazarus присваивает имя модулю (в исходном коде) также, как и имя файла модуля, а программе по имени файла проекта (это необходимо сделать иначе компилятор может впоследствии не найти модуль по ссылке на него в файле проекта). Во избежание противоречий (ошибок) следует изменить все упоминания Unit1 на xxx.
245255
246256Итак, если вы сохранили проект под именем **again**, то попытка сохранить again.pas и again.lpr приведет к ошибке, потому что имена модуля и программы одинаковы, что приводит к ошибке двойного именования.
247257
248258Ниже приведен пример именования:
249259
250260e:/lazarus/kj/lazhello:
251261
252-`total 4740  free 76500`\
253-`-rwxrwxrwx   1 kjwh     root  4618697 Mar 24 11:19 again.exe`\
254-`-rw-rw-rw-   1 kjwh     root     3002 Mar 24 11:21 again.lpi`\
255-`-rw-rw-rw-   1 kjwh     root      190 Mar 24 11:18 again.lpr`\
256-`-rw-rw-rw-   1 kjwh     root      506 Mar 24 11:08 againu.lfm`\
257-`-rw-rw-rw-   1 kjwh     root      679 Mar 24 11:08 againu.lrs`\
258-`-rw-rw-rw-   1 kjwh     root      677 Mar 24 11:08 againu.pas`\
259-`-rw-rw-rw-   1 kjwh     root     2124 Mar 24 11:08 againu.ppu`\
260-`-rwxrwxrwx   1 kjwh     root      335 Mar 24 11:07 ppas.bat`
262+```text
263+total 4740 free 76500
264+-rwxrwxrwx 1 kjwh root 4618697 Mar 24 11:19 again.exe
265+-rw-rw-rw- 1 kjwh root 3002 Mar 24 11:21 again.lpi
266+-rw-rw-rw- 1 kjwh root 190 Mar 24 11:18 again.lpr
267+-rw-rw-rw- 1 kjwh root 506 Mar 24 11:08 againu.lfm
268+-rw-rw-rw- 1 kjwh root 679 Mar 24 11:08 againu.lrs
269+-rw-rw-rw- 1 kjwh root 677 Mar 24 11:08 againu.pas
270+-rw-rw-rw- 1 kjwh root 2124 Mar 24 11:08 againu.ppu
271+-rwxrwxrwx 1 kjwh root 335 Mar 24 11:07 ppas.bat
272+```
261273
262274Заметьте, что появилось более двух файлов, как следовало бы ожидать.
263275
264276Ниже приведена краткая справка по каждому файлу:
265277
266278**again.exe:** Основной исполняемый файл программы. Win32 добавляет расширение "exe". Linux этого не делает. В Linux это файл будет иметь большой размер вследствие того, что включает отладочную информацию. Запустите утилиту "strip" чтобы удалить ее и значительно снизить размер исполняемого файла.
267279
268280**again.lpi:** Это основной файл проекта Lazarus (Lazarus Project Information); эквивалент основного файла приложения в Delphi с расширением .dpr. Он сохраняется в XML формате.
269281
270282**again.lpr:** Исходный код основной программы. Не смотря на специфичноое для Lazarus расширение на самом деле это обычный Pascal-код. Он содержит строку Uses, помогающую компилятору найти все необходимые модули Отметим, что программа называется не аналогично имени данного файла.
271283
272284**againu.lfm:** Это файл, в котором Lazarus хранит описание формы. Lazarus использует его для создания файла ресурсов, который включает секцию инициализации модуля againu.pas. Файл Delphi с расширением .dfm может быть преобразован в lfm-формат в IDE Lazarus из главного меню: Tools-\>Convert DFM file.
273285
274286**again.lrs:** Это автоматически генерируемый файл ресурсов. Заметьте, что это не файл ресурсов Windows.
275287
276288**againu.pas:** Модуль, содержащий код формы.
277289
278290**again.ppu:** Это скомпилированный модуль.
279291
280292**ppas.bat:** Это простой скрипт, связывающий программу для создания выполняемого файла. Если компиляция успешна, он удаляется компилятором.
281293
282294## Авторство и изменения
283295
284296Эта страница была импортирована из epikwiki [версии](http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial).
285297
286298- Created initial page and template. T. Lisjac - 11/04/2003 VlxAdmin
287299- Inserted a note containing instructions for writing your first Lazarus Program. Suggest an administrator places it in the appropriate place on the Tutorial menu. 3/09/2004 User:Kirkpatc
288300- Per above, moved Chris's writeup to the main body of the tutorial VlxAdmin
289301- Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 User:Kirkpatc
290302- Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 User:Kirkpatc
291303- Added screenshots and revised some of the page formatting VlxAdmin 3/25/2004
292304- Moved some of kwhitefoot's comments into Tutorial section. Formatting not quite right, but have to go to bed now! 26 Mar 2004 User:Kirkpatc
293305- Formatted, added credits and comments. Removed original notes. VlxAdmin 3/26/2004
294306- More material added to Editor section of tutorial. 26 Mar 2004 User:Kirkpatc
295307- More material added describing the Main Menu. Renamed 'Hello World' to 'Getting Started' and moved it to nearer the top. 31 March 2004 User:Kirkpatc
296308- Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 User:Kirkpatc
297309- Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 User:Kirkpatc
298310- Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 User:Kirkpatc
299311- Added some more to the description of the Editor Main Menu. 18 Apr 2004 User:Kirkpatc
300312- Added section on Environment sub-menu. 19 Apr 2004 User:Kirkpatc
301313- Added section on Components sub-menu. 4 May 2004 User:Kirkpatc
302314- Adding Tools sub-menu description (incomplete). 7 May 2004 User:Kirkpatc
303315- Added some screenshots to Menu descriptions. 9 May 2004 User:Kirkpatc
304316- Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 User:Kirkpatc
305317- More additions to Tools sub-menu. 19 May 2004 User:Kirkpatc
306318- Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 User:Kirkpatc
307319- Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 User:Kirkpatc
308320- Edited the StdCtrls file, removing a lot of repetitive material and doing some formatting. It is still far too long. 28 May 2004 User:Kirkpatc
309321- Expanding on the Components Palette. 5 June 2004 User:Kirkpatc
310322- Added a lot to the DialogExamples page. 10 June 2004 User:Kirkpatc
311323- Considerable revision of the StdCtrls page, hopefully making it clearer and encouraging people to contribute - particularly in the 'Description' sections. 14 June 2004 User:Kirkpatc
312324- Added pages for Menus and Dialogs units (linked to Component Palette description) - please feel free to add to these pages. 14 June 2004 User:Kirkpatc
313325- Added page for Common Controls (linked to Component Palette). 16 June 2004 User:Kirkpatc
314326- Added MaskEdit page (linked to Component Palette). 17 June 2004 User:Kirkpatc
315327- Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 User:Kirkpatc
316328- Edited MainMenu component description page. 23 June 2004 User:Kirkpatc
317329- Some additions to Common Controls. 28 June 2004 User:Kirkpatc
318330- A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 User:Kirkpatc
319331- Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July User:Kirkpatc
320332- Added FormsTxt, component description page for Component Palette. 20 July 2004 User:Kirkpatc
321333- Some corrections to ConsoleModePascal. 21 July 2004 User:Kirkpatc
322334- Some small changes to ComponentPalette. 22 July 2004 User:Kirkpatc
323335
324336---
325337*From the Free Pascal wiki, page "Lazarus Tutorial/ru", as it stood on 2021-12-08 after a change by Kupferstecher, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history