Sign in Join
Wiki copytemporary

Lazarus Tutorial/ru: what changed

Revision 1 to 2. 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
2121` procedure TForm1.Button1Click(Sender: TObject);`\
2222` begin`\
2323`   {здесь наберите:}  Button1.caption := 'Нажми еще раз';`\
2424`   {Редактор уже вставил завершение процедуры}`\
2525` end;`
2626
2727Нажмите F12 для переключения от Редактора Кода к окну формы Form1.
2828
2929Теперь отредактируйте свойства кнопки2 (Button2): щелкните на Button2 для отображения ее свойств в Инспекторе Объектов. Измените свойство Caption на 'Выход' вместо 'Button2'. Теперь перейдите на вкладку событий (Events) и щелкните в строке OnClick. Щелкните на кнопке с троеточием и перенеситесь в Редактор Кода, в тело другой процедуры:
3030
3131` procedure TForm1.Button2Click(Sender: TObject);`\
3232` begin`\
3333` {здесь наберите:}   Close;`\
3434` {Редактор уже вставил завершение процедуры} `\
3535` end;`
3636
3737Теперь нажмите F12 чтобы увидеть форму Form1 вновь. Теперь вы можете попытаться скомпилировать. Простейшим способом сделать это является выбор в главном меню пункта 'Run' а в появившемся подменю пункта 'Run'. Вы также можете просто нажать клавишу F9. Сначала произойдет компиляция, а затем (если все в порядке) линковка и запуск вашей программы.
3838
3939Промелькнет несколько текстовых окон и будут выведены различные сообщения компилятора, а потом вновь появится окно формы Form1, но уже без точечной сетки; это и есть реальное главное окно вашего приложения, и оно ожидает нажатия кнопок или любого другого вашего действия.
4040
4141Попробуйте щелкнуть на кнопке 'Нажми меня'. Вы увидите, что надпись на ней сменится на 'Нажми еще раз'. Если вы нажмете еще раз, то на кнопке так и останется надпись 'Нажми еще раз'!!
4242
4343Теперь щелкните на кнопке с надписью 'Выход'. Окно закроется и программа завершится. Вновь появится окно формы Form1 с точечной сеткой, готовое для редактирования.
4444
4545Теперь (и вообще почаще) вы можете сохранить свою работу выбрав последовательно пункты меню Project \> Save Project As \> имя_вашего_файла.pas
4646
4747### Вторая попытка.
4848
4949Вновь откройте сохраненный вами проект.
5050
5151На форме Form1 щелкните на кнопке 'Нажми меня' (Button1) чтобы выбрать ее. В Инспекторе Объектов перейдите на вкладку событий (Events), щелкните на строке справа от события OnClick, щелкните на кнопке с многоточием, чтобы перенестись к соответствующему участку кода в Редакторе.
5252
5353Измените код, на приведенный ниже:
5454
5555` procedure TForm1.Button1Click(Sender: TObject);`\
5656`{Используем свойство Tag, устанавливая его в положения 0 или 1}`\
5757` begin`\
5858`   if Button1.tag =0 then`\
5959`   begin`\
6060`     Button1.caption := 'Нажми еще раз';`\
6161`     Button1.tag := 1`\
6262`   end else`\
6363`   begin`\
6464`     Button1.caption := 'Нажми меня';`\
6565`     Button1.tag := 0`\
6666`   end`\
6767` end;`
6868
6969Сохраните проект, перекомпилируйте и запустите. Левая кнопка теперь циклически меняет свой текст с одного сообщения на другое.
7070
7171Сделай дело - гуляй смело!
7272
7373Если вы хотите писать консольные или программы с текстовым интерфейсом на Pascal (например, если вы следуете стандартному курсу изучения программирования на Pascal, или вам нужно написать программу для работы в командном режиме или системную программу) вы также можете использовать Lazarus для написания, компилирования и выполнения ваших программ. Это прекрасная среда для программирования на Pascal. Смотри [[Console Mode Pascal]].
7474
7575## Редактор
7676
7777Когда вы запускаете Lazarus в первый раз, на вашем рабочем столе появляется набор несвязанных 'плавающих' окошек.
7878
7979Первое, расположенное в самом верху рабочего стола имеет название **Lazarus Editor vXXXXXX - project1** (название зависит от используемой версии и названия открытого проекта). Это главное окно управления проектом и оно содержит Главное Меню и Палитру Компонентов (Component Palette).
8080
81-<center>
82-
83-<figure>
84-<img src="Lazmain.jpg" title="Lazmain.jpg" />
85-<figcaption>Lazmain.jpg</figcaption>
86-</figure>
87-
88-</center>
81+![](/wiki-images/2/2d/Lazmain.jpg)
8982
9083Строкой ниже располагается Главное Меню с обычными пунктами File, Edit, Search, View и некоторыми специфичными для Lazarus. Ниже Слева располагается набор кнопок, предоставляющих быстрый доступ к некоторым функциям главного меню, и справа - Палитра Компонентов. *(Примечание переводчика: если при установке вы выбираете русский язык, то весь интерфейс будет на русском, то есть пункты меню, названия окон и вкладок, а также подсказки. В связи с этим далее все названия указаны на русском, а в скобках (на английском) языке. В любой момент можно переключить язык интерфеса в пункте меню **Окружение**. )*
9184
9285Под окном редактора 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-код вашего приложения. Использование Инспектора Объектов детально обсуждается ниже после описания Палитры Компонентов.
9386
9487Когда вы начинаете новый проект (или впервые запускаете Lazarus) по умолчанию создается стандартная форма, состоящая из прямоугольника с точечной сеткой для более легкого позиционирования различных компонентов на форме и системная строка сверху, которая обычно содержит кнопки **Свернуть**, **Развернуть** и **Закрыть**. Если вы щелкните мышкой в любом месте формы, вы увидите ее свойства в Инспекторе Объектов у левого края экрана.
9588
9689Другие окна, которые могут появиться в процессе работы: **[Инспектор проектов](http://lazarus-ccr.sourceforge.net/kbdata/projinsp.jpg)**, содержащий сведения о файлах, включенных в проект, и позволяющий вам добавлять и удалять файлы из проекта; Окно **Messages** (**Сообщения**), отображающее сообщения компилятора, ошибки и отчеты по вашему проекту; если Lazarus был запущен из терминала, то это окно остается запущенным и в нем отображаются подробные сообщения компилятора.
9790
9891### Главное меню
9992
10093For a detailed description of every menu item which is accessible from the Lazarus IDE Main Menu, please refer to the [[Main menu/ru]] page.
10194
10295### Кнопочная панель
10396
10497Маленькая панель в левой верхней части основного окна, слева от палитры компонентов, имеет набор кнопок, повторяющих наиболее часто применяемые выборы основного меню:
10598
10699
107100**Создать модуль**, **Открыть** (со стрелкой вниз для отображения списка недавно использованных файлов), **Сохранить**, **Сохранить все**, **Создать форму**, **Переключить Форма/Модуль** (т.е. показать либо форму, либо модуль исходного кода), **Показать модули**, **Показать формы**, **Запуск** (т.е. компиляция и выполнение), **Пауза**, **Шаг со входом**, **Шаг в обход** (последние два – функции отладчика).
108101
109102## Палитра Компонентов
110103
111104Это панель инструментов с вкладками, показывающая множество иконок, представляющих обычно применяемые компоненты при построении форм.
112105
113106Каждая вкладка представляет собой набор иконок, составляющих функциональную группу компонентов. Самая левая иконка на каждой вкладке в виде стрелочки называется Средством Выбора.
114107
115108Если навести курсор мыши на иконку палитры компонентов без нажатия, появится название данной компоненты. Заметьте, что каждое название начинается с 'T', что означает 'Тип', а точнее 'Класс' компоненты. При выборе компоненты для размещения на форме, Class добавится в секцию **type** раздела **interface** модуля (обычно в виде части на TForm1), и **instance** (образец) этого класса добавится в секцию **var** (обычно как переменная Form1). Все **Methods** (методы), разработанные для формы или ее компонент (процедуры или функции) будут помещены в раздел **implementation** модуля.
116109
117110В приведенном ниже списке компонентов можно найти связи с файлами, которые содержат описания модулей, в которых они найдены. Если нужно узнать о свойствах конкретного компонента, зачастую следует обратить внимание на Наследование этого компонента и просмотреть свойства базового типа, из которого он произведен. Например, для изучения TMaskEdit очень полезно просмотреть TCustomMaskEdit.
118111
119112**ВКЛАДКИ** (их имена понятны и не требуют разъяснений):
120113
121114- **[Standard](http://lazarus-ccr.sourceforge.net/index.php?wiki=StdCtrls)**
122115
123-<center>
124-
125-<figure>
126-<img src="Component_Palette_Standart.png" title="Component_Palette_Standart.png" />
127-<figcaption>Component_Palette_Standart.png</figcaption>
128-</figure>
129-
130-</center>
116+![](/wiki-images/4/4d/Component_Palette_Standart.png)
131117
132118
133119*Наиболее часто применяемые компоненты:* [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
134120
135121- **[Additional](http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls)**
136122
137-<center>
138-
139-<figure>
140-<img src="Component_Palette_Additional.png" title="Component_Palette_Additional.png" />
141-<figcaption>Component_Palette_Additional.png</figcaption>
142-</figure>
143-
144-</center>
123+![](/wiki-images/7/7d/Component_Palette_Additional.png)
145124
146125
147126*Дополнительные, часто используемые:* [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
148127
149128- **[Common Controls](http://lazarus-ccr.sourceforge.net/index.php?wiki=ComCtrls)**
150129
151-<center>
152-
153-<figure>
154-<img src="Component_Palette_Common_Controls.png" title="Component_Palette_Common_Controls.png" />
155-<figcaption>Component_Palette_Common_Controls.png</figcaption>
156-</figure>
157-
158-</center>
130+![](/wiki-images/4/4a/Component_Palette_Common_Controls.png)
159131
160132
161133TTrackBar, TProgressBar, TTreeView, TListView, TStatusBar, TToolBar, TUpDown, TPageControl, TImageList
162134
163135- **[Dialogs](http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt)**
164136
165-<center>
166-
167-<figure>
168-<img src="Component_Palette_Dialogs.png" title="Component_Palette_Dialogs.png" />
169-<figcaption>Component_Palette_Dialogs.png</figcaption>
170-</figure>
171-
172-</center>
137+![](/wiki-images/7/72/Component_Palette_Dialogs.png)
173138
174139
175140TOpenDialog, TSaveDialog, TSelectDirectoryDialog, TColorDialog, TFontDialog, TOpenPictureDialog, TSavePictureDialog, TCalendarDialog, TCalculatorDialog
176141
177142Некоторые полезные процедуры или функции группы **[Dialog](http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogExamples)** не размещены на Палитре, но легко применяются путем прямого вызова из исходной программы.
178143
179144Несколько хороших примеров использования компонентов находятся в папке \$LazarusPath/lazarus/examples исходной установки. Многие программы показывают способы применения диалогов и других компонентов без использования IDE и палитры компонентов, при наличии файла определения отдельной формы: все компоненты явно и полно определены в основной программе. Другие программы примеров полностью используют IDE.
180145
181146Некоторые примеры не будут сначала работоспособны: понадобится настройка путей и разрешений для файлов и папок. При желании скомпилировать пример убедитесь, что для файлов и папок установлены разрешения read/write/execute, или скопируйте файлы в папку с подходящими разрешениями.
182147
183148Попробуйте выполнить программу 'testall' для просмотра меню доступных компонентов совместно с маленькими примерами тестовых форм для большинства из них; затем просмотрите исходный код для понимания принципов их работы!
184149
185150- **Misc**
186151
187-<center>
188-
189-<figure>
190-<img src="Component_Palette_Misc.png" title="Component_Palette_Misc.png" />
191-<figcaption>Component_Palette_Misc.png</figcaption>
192-</figure>
193-
194-</center>
152+![](/wiki-images/8/8e/Component_Palette_Misc.png)
195153
196154
197155[TColorButton](http://lazarus-ccr.sourceforge.net/index.php?wiki=DialogsTxt), TSpinEdit, TArrow, TCalendar, TEditButton, TFileNameEdit, TDirectoryEdit, TDateEdit, TCalcEdit, TFileListBox
198156
199157- **Data Controls**
200158
201-<center>
202-
203-<figure>
204-<img src="Component_Palette_DataControls.png" title="Component_Palette_DataControls.png" />
205-<figcaption>Component_Palette_DataControls.png</figcaption>
206-</figure>
207-
208-</center>
159+![](/wiki-images/6/62/Component_Palette_DataControls.png)
209160
210161
211162*Компоненты работы с данными, которые в основном копируют стандартную и дополнительную группы, но применительно к базам данных:* TDBNavigation, TDBText, TDBEdit, TDBMemo, TDBImage, TDBListBox,TDBComboBox, TDBCheckBox, TDBRadioGroup, TDBCalendar, TDBGroupBox, TdbGrid
212163
213164- **Data Access**
214165
215-<center>
216-
217-<figure>
218-<img src="Component_Palette_DataAccess.png" title="Component_Palette_DataAccess.png" />
219-<figcaption>Component_Palette_DataAccess.png</figcaption>
220-</figure>
221-
222-</center>
166+![](/wiki-images/c/cc/Component_Palette_DataAccess.png)
223167
224168
225169TDatasource
226170
227171- **System**
228172
229-<center>
230-
231-<figure>
232-<img src="Component_Palette_System.png" title="Component_Palette_System.png" />
233-<figcaption>Component_Palette_System.png</figcaption>
234-</figure>
235-
236-</center>
173+![](/wiki-images/f/fe/Component_Palette_System.png)
237174
238175
239176[TTimer](http://lazarus-ccr.sourceforge.net/index.php?wiki=ExtCtrls), TIdleTimer, TProcess
240177
241178- **SynEdit**
242179
243-<center>
244-
245-<figure>
246-<img src="Component_Palette_SynEdit.png" title="Component_Palette_SynEdit.png" />
247-<figcaption>Component_Palette_SynEdit.png</figcaption>
248-</figure>
249-
250-</center>
180+![](/wiki-images/2/22/Component_Palette_SynEdit.png)
251181
252182
253183*Группа компонентов для сопряжения с другими языками и сервисными программами. 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
254184
255185Для работы с палитрой нужно открыть форму (если форма не открыта, выбрать Файл -\> Создать Форму). Щелкните на иконке нужного компонента на нужной вкладке Палитры, затем щелкните на форме, и этот компонент появится на ней. После этого можно выбрать новый компонент щелчком мыши, переместить его в желаемое место и подогнать размеры. Эти установки можно сделать также с помощью Инспектора Объектов, регулируя значения соответствующих свойств данного компонента.
256186
257187При установке дополнительных компонентов, разработанных самостоятельно, или полученных со стороны, появятся дополнительные вкладки с соответствующими иконками на Палитре компонентов. Эти новые компоненты могут быть выбраны и использованы на формах, как и те, что поставлены по умолчанию.
258188
259189## Отладчик
260190
261191Писал и редактировал: Romlo
262192
263193### Настройки
264194
265195Чтобы пользоваться отладчиком, должны быть установлены галочки:
266196
267197проект \> параметры компилятора \> вкладка "Связывание" \>
268198
269199- галочка "Выдавать номера строк в ошибках времени исполнения"
270200
271201- галочка "Генерировать отладочную информацию для GDB (замедляет сборку)"
272202
273203### Кнопки
274204
275205Управление отладкой производится вот этими пятью кнопками:
276206
277-<figure>
278-<img src="Buttons_debugger.PNG" title="Buttons_debugger.PNG" />
279-<figcaption>Buttons_debugger.PNG</figcaption>
280-</figure>
207+![](/wiki-images/b/b9/Buttons_debugger.PNG)
281208
282209- Зеленый треугольник - "Запуск" - скомпилировать и запустить приложение под отладчиком.
283210- Вертикальные палочки - "Пауза" - здесь серые, а вообще синие - это пауза, можно приостановить приложение, например, при трассировке.
284211- Квадратик - "Останов" - здесь серый, а вообще красный - закрыть приложение. Это если оно повисло (напр. в бесконечном цикле).
285212
286213Остальные две кнопки используются при трассировке программы, про которую мы поговорим подробнее.
287214
288215### Трассировка
289216
290217Трассировать программу - значит выполнять её шаг за шагом, построчно. Для трассировки какого-либо участка программы, нужно установить в нужном месте "точку останова". Для этого надо найти начало участка программы в редакторе кода, а затем щёлкнуть по его номеру слева. При этом сама строчка выделится красным, а рядом с номером появится красный кружок.
291218
292-<figure>
293-<img src="str_debugger.PNG" title="str_debugger.PNG" />
294-<figcaption>str_debugger.PNG</figcaption>
295-</figure>
219+![](/wiki-images/0/01/Str_debugger.PNG)
296220
297221После нажатия на "запуск", знак вопроса в кружке должен смениться галочкой. Если вместо галочки там крестик, значит, точка останова не была установлена по каким-то причинам. В этом случае лучше ещё раз проверить настройки и перезапустить Lazarus. Если же всё получилось, продолжим. Далее, нужно вызвать то событие, при котором начнёт выполняться данный участок кода (то есть если вы поставили точку останова в начале button1_click, например, то теперь вам надо нажать эту кнопку). При этом должен показаться редактор кода. Ранее красная строчка теперь станет серой, а галочка в кружке сменится стрелочкой:
298222
299-<figure>
300-<img src="str2_debugger.PNG" title="str2_debugger.PNG" />
301-<figcaption>str2_debugger.PNG</figcaption>
302-</figure>
223+![](/wiki-images/9/92/Str2_debugger.PNG)
303224
304225Вот теперь и вспомним про те две кнопки, что мы не рассмотрели. первая называется "Шаг со входом", вторая - "Шаг в обход". Смысл первой заключается в том, что если сейчас вы "стоите" на строчке с какой-то процедурой или функцией, то нажав эту кнопку, вы перейдете на эту процедуру и будете выполнять пошагово уже её. Когда она закончится, вы вернётесь обратно, но уже на следующую строку. Как несложно догадаться, нажав на вторую кнопку, вы не зайдёте в процедуру, она просто выполнится, а вы перейдёте на следующую строку.
305226
306227Отдельно надо сказать, что "Шаг со входом" не работает, если функция, на которой вы "стоите", экспортирована из библиотеки (например, в WinAPI-функцию вы зайти не сможете).
307228
308229Также имеется возможность просматривать содержимое переменных, для этого надо просто навести на неё мышку прямо в редакторе кода, во всплывающей подсказке будет указан адрес переменной и её содержимое:
309230
310-<figure>
311-<img src="var_debugger.png" title="var_debugger.png" />
312-<figcaption>var_debugger.png</figcaption>
313-</figure>
231+![](/wiki-images/e/e9/Var_debugger.png)
314232
315233Ну и в дополнение к сказанному добавлю, что чтобы продолжить выполнение программы в обычном режиме (если вам надоело её трассировать), достаточно нажать кнопку "запуск". Ну а чтобы убрать точку останова, надо закрыть приложение и ещё раз щёлкнуть по номеру строки, на которой эта точка стоит. ну и после этого заново откомпилировать приложение.
316234
317235## Файлы Lazarus
318236
319237`   (Благодарим Kevin Whitefoot.)`\
320238`   (ДОбавления от Giuseppe Ridinò, `User:Kirkpatc` и Tom Lisjac)`
321239
322240Когда вы выполняете сохранение на самом деле вы сохраняете два файла:
323241
324242`  xxx.pas и yyy.lpr `
325243
326244(Вы сохраняете и больше, но это те файлы, которым вы даете имена). Файл проекта (lpr) и файл модуля (pas) должны иметь разные имена, потому что Lazarus присваивает имя модулю (в исходном коде) также, как и имя файла модуля, а программе по имени файла проекта (это необходимо сделать иначе компилятор может впоследствии не найти модуль по ссылке на него в файле проекта). Во избежание противоречий (ошибок) следует изменить все упоминания Unit1 на xxx.
327245
328246Итак, если вы сохранили проект под именем **again**, то попытка сохранить again.pas и again.lpr приведет к ошибке, потому что имена модуля и программы одинаковы, что приводит к ошибке двойного именования.
329247
330248Ниже приведен пример именования:
331249
332250e:/lazarus/kj/lazhello:
333251
334252`total 4740  free 76500`\
335253`-rwxrwxrwx   1 kjwh     root  4618697 Mar 24 11:19 again.exe`\
336254`-rw-rw-rw-   1 kjwh     root     3002 Mar 24 11:21 again.lpi`\
337255`-rw-rw-rw-   1 kjwh     root      190 Mar 24 11:18 again.lpr`\
338256`-rw-rw-rw-   1 kjwh     root      506 Mar 24 11:08 againu.lfm`\
339257`-rw-rw-rw-   1 kjwh     root      679 Mar 24 11:08 againu.lrs`\
340258`-rw-rw-rw-   1 kjwh     root      677 Mar 24 11:08 againu.pas`\
341259`-rw-rw-rw-   1 kjwh     root     2124 Mar 24 11:08 againu.ppu`\
342260`-rwxrwxrwx   1 kjwh     root      335 Mar 24 11:07 ppas.bat`
343261
344262Заметьте, что появилось более двух файлов, как следовало бы ожидать.
345263
346264Ниже приведена краткая справка по каждому файлу:
347265
348266**again.exe:** Основной исполняемый файл программы. Win32 добавляет расширение "exe". Linux этого не делает. В Linux это файл будет иметь большой размер вследствие того, что включает отладочную информацию. Запустите утилиту "strip" чтобы удалить ее и значительно снизить размер исполняемого файла.
349267
350268**again.lpi:** Это основной файл проекта Lazarus (Lazarus Project Information); эквивалент основного файла приложения в Delphi с расширением .dpr. Он сохраняется в XML формате.
351269
352270**again.lpr:** Исходный код основной программы. Не смотря на специфичноое для Lazarus расширение на самом деле это обычный Pascal-код. Он содержит строку Uses, помогающую компилятору найти все необходимые модули Отметим, что программа называется не аналогично имени данного файла.
353271
354272**againu.lfm:** Это файл, в котором Lazarus хранит описание формы. Lazarus использует его для создания файла ресурсов, который включает секцию инициализации модуля againu.pas. Файл Delphi с расширением .dfm может быть преобразован в lfm-формат в IDE Lazarus из главного меню: Tools-\>Convert DFM file.
355273
356274**again.lrs:** Это автоматически генерируемый файл ресурсов. Заметьте, что это не файл ресурсов Windows.
357275
358276**againu.pas:** Модуль, содержащий код формы.
359277
360278**again.ppu:** Это скомпилированный модуль.
361279
362280**ppas.bat:** Это простой скрипт, связывающий программу для создания выполняемого файла. Если компиляция успешна, он удаляется компилятором.
363281
364282## Авторство и изменения
365283
366284Эта страница была импортирована из epikwiki [версии](http://lazarus-ccr.sourceforge.net/index.php?wiki=LazarusTutorial).
367285
368286- Created initial page and template. T. Lisjac - 11/04/2003 VlxAdmin
369287- 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
370288- Per above, moved Chris's writeup to the main body of the tutorial VlxAdmin
371289- Began to insert text describing the Lazarus Editor - more to follow! 24 Mar 2004 User:Kirkpatc
372290- Added some more to Lazarus Editor section of Tutorial. 25 Mar 2004 User:Kirkpatc
373291- Added screenshots and revised some of the page formatting VlxAdmin 3/25/2004
374292- 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
375293- Formatted, added credits and comments. Removed original notes. VlxAdmin 3/26/2004
376294- More material added to Editor section of tutorial. 26 Mar 2004 User:Kirkpatc
377295- 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
378296- Inserted section on Run sub-menu. Some general editing (eg ended each entry with a period to ensure consistency). 9 Apr 2004 User:Kirkpatc
379297- Inserted a new section on How to get started with MySQL in FPC/Lazarus. 13 Apr 2004 User:Kirkpatc
380298- Deleted the section on MySQL from here: it has been copied to Lazarus Database section of tutorial. 14 Apr 2004 User:Kirkpatc
381299- Added some more to the description of the Editor Main Menu. 18 Apr 2004 User:Kirkpatc
382300- Added section on Environment sub-menu. 19 Apr 2004 User:Kirkpatc
383301- Added section on Components sub-menu. 4 May 2004 User:Kirkpatc
384302- Adding Tools sub-menu description (incomplete). 7 May 2004 User:Kirkpatc
385303- Added some screenshots to Menu descriptions. 9 May 2004 User:Kirkpatc
386304- Fixed a bit in Environment Options - thanks VincentSnijders. 14 May 2004 User:Kirkpatc
387305- More additions to Tools sub-menu. 19 May 2004 User:Kirkpatc
388306- Added a section on the Button Bar and started work on The Component Palette. 20 May 2004 User:Kirkpatc
389307- Posted a description file for the StdCtrls unit of the LCL, in the hope that people will add comments. 26 May 2004 User:Kirkpatc
390308- 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
391309- Expanding on the Components Palette. 5 June 2004 User:Kirkpatc
392310- Added a lot to the DialogExamples page. 10 June 2004 User:Kirkpatc
393311- 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
394312- 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
395313- Added page for Common Controls (linked to Component Palette). 16 June 2004 User:Kirkpatc
396314- Added MaskEdit page (linked to Component Palette). 17 June 2004 User:Kirkpatc
397315- Added Buttons, ExtCtrls pages (linked to Component Palette). 17 June 2004 User:Kirkpatc
398316- Edited MainMenu component description page. 23 June 2004 User:Kirkpatc
399317- Some additions to Common Controls. 28 June 2004 User:Kirkpatc
400318- A new tutorial on Text-mode Pascal programming has been added. 5 July 2004 User:Kirkpatc
401319- Minor changes to ComCtrls, ExtCtrls, Environment Menu. 10 July User:Kirkpatc
402320- Added FormsTxt, component description page for Component Palette. 20 July 2004 User:Kirkpatc
403321- Some corrections to ConsoleModePascal. 21 July 2004 User:Kirkpatc
404322- Some small changes to ComponentPalette. 22 July 2004 User:Kirkpatc
405323
406324---
407325*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