Sign in Join
Wiki copytemporary

Project Templates/ru: what changed

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

OldNewLine
11# Обзор
22
33Вы можете приспособиться при создании новых проектов. Среда IDE позволяет регистрировать собственные типы проектов с помощью пакетов designtime. Пакет **projtemplates** ( он предварительно установлен в обычных бинарных пакетах Lazarus) позволяет просто использовать существующие проекты в качестве шаблонов.
44
55# Пакет projtemplates
66
77Этот пакет реализует шаблоны проектов и поставляется с исходными кодами lazarus (components/projecttemplates/projtemplates.lpk).
88
99Пакет поставляется с предустановленными бинарными пакетами Lazarus (например, установщик Windows). Этот пакет добавляет категорию в диалог **File-New**: **Template projects**
1010
1111Он также добавляет пункт меню **New project from Template** в меню **File**, а также меню **project template options** в разделе **Tools** \[общего\] меню. Этот пункт меню отображается только в том случае, если каталог шаблонов (см. следующий абзац) существует и содержит хотя бы один подкаталог шаблонов.
1212
1313В \[разделе\] *Project template options* можно выбрать каталог. Этот каталог должен содержать подкаталог для каждого шаблона. Каждый каталог шаблонов содержит шаблон для проекта: набор файлов, которые будут скопированы и использованы в качестве нового проекта.
1414
1515Во время копирования пакет будет сканировать имена файлов/каталогов и содержимое файлов для подстановки переменных: **__VARNAME__** будет заменено значением переменной VARNAME
1616
1717По умолчанию движок знает о 2 переменных:
1818
1919- ProjDir: Каталог, в котором будет создан новый проект.
2020- ProjName: Название нового проекта в ProjDir.
2121
2222Дополнительные переменные должны быть определены в файле с именем **project.ini** в каталоге проекта. Это - файл в формате Windows INI.
2323
2424Раздел *\[Variables\]* будет сканироваться на предмет имен переменных:
2525
2626``` ini
2727 [Variables]
2828 VarName1=Description 1[|DefaultValue 1]
2929 VarName2=Description 2[|DefaultValue 2]
3030```
3131
3232Найденные переменные будут представлены с их описанием в диалоговом окне, и пользователь должен представить значение для переменных.
3333
3434Файл *project.ini* может содержать второй раздел, называемый *Project*, который может содержать некоторую информацию о проекте. Здесь можно найти следующие ключевые слова:
3535
3636## ProjectFile
3737
3838Имя файла (без расширения) lpi-файла проекта шаблона. Любой файл с именем, равным этому (без расширения), обрабатывается специально, он переименовывается в имя проекта. То есть, вот это *ProjectFile=example* заменит *example.lpi*, *example.lpr* и *example.cfg* на имя, данное пользователем. По умолчанию предполагается, что значением **ProjectFile** является *project* (обратите внимание, что файл .ini не копируется)
3939
4040ProjectFile не является обязательным. Первый файл *.lpi в папке проекта шаблона будет принят как ProjectFile, если ProjectFile не указан или не существует.
4141
4242## Name
4343
4444Название шаблона. Имя и описание будут представлены в диалоге 'File-New'.
4545
4646## Author
4747
4848Автор шаблона
4949
5050## Description
5151
5252Краткое (однострочное) описание проекта. Имя и описание будут представлены в диалоге 'File-New'.
5353
5454## Recurse
5555
5656Логическое значение (1/0), которое указывает движку \[осуществлять\] рекурсивный \[поиск\] в подкаталогах или нет.
5757
5858## Exclude
5959
6060Разделенный запятыми список расширений имени файла, которые не следует искать для подстановки ключевых слов.
6161
6262## Как начать
6363
6464**Шаг 1;**
6565
6666Создайте свой собственный каталог шаблонов (например, ~ /.lazarus/mytemplates) и установите этот путь в Lazarus (меню: Tools -\> Project Template Options).
6767
6868**Шаг 2:**
6969
7070Чтобы любые шаблонные функции появились в меню File Lazarus'а, вам понадобится как минимум один шаблон, который вы можете использовать в своем существующем (обычном) проекте;
7171
7272\- Создайте каталог в вашем каталоге шаблонов (например, ~/.lazarus/mytemplates/myfirsttemplate)
7373
7474\- Скопируйте файлы вашего проекта в этот новый каталог (*.lfm, *.pas, *.ico, *.lpi, *.lpr, *.res)
7575
7676**Шаг 3:**
7777
7878Создайте файл *project.ini* в новом каталоге шаблонов.
7979
8080Минимум, \[файл\] должен выглядеть примерно так:
8181
8282project.ini:
8383
8484``` ini
8585 [Variables]
8686
8787 [Project]
8888 Name=My Form Template
8989```
9090
9191**Необязательно:** Приятной особенностью Project Templates является то, что они поддерживают переменные. Так как проект, вероятно, не будет называться так же, как ваш пример шаблона, вам придется внести некоторые изменения в код и переименовать файл.
9292
9393**Файлы**: Переименуйте файл проекта (ico, lpi, lpr, res) в __PROJNAME __. Ext (где расширение, конечно, является исходным расширением). Например: project.lpi становится __PROJNAME __. Lpi. Примечание: содержимое файла lpi может нуждаться в некоторой очистке, например, удаление истории, ссылки на файлы, даже если вы не уверены, нужен ли файл lpi.
9494
9595**Содержимое файла**: Для всех файлов, которые ссылаются на project.lpi и т.д., измените содержимое ваших файлов, чтобы все ссылки на "project" превратились в "__PROJNAME__" (с кавычками)
9696
9797Вы можете опционально определить свои собственные переменные, например, чтобы дать "unit.pas" другое имя файла. Например, вы можете определить __MAINUNIT__ и __MAINFORM__ в project.ini как MAINUNIT и MAINFORM - во время создания Lazarus запросит у вас эти имена. Теперь каждое вхождение __MAINUNIT__, например, будет заменено предоставленным вами текстом (избегайте специальных символов и пробелов).
9898
9999Обратите внимание, что это работает для всех переменных; Каждое вхождение переменной в именах файлов и содержимом файла будет заменено тем, что вы ввели при создании нового проекта на основе вашего шаблона. Предопределенными переменными являются PROJNAME и PROJDIR, но я пока не нашел назначения для PROJDIR.
100100
101101Некоторые примеры:
102102
103103**project.ini**
104104
105105``` ini
106106 [Variables]
107107 MAINUNIT=Filename for the default unit.pas file
108108 MAINFORM=Form name
109109
110110 [Project]
111111 Name=My Custom Form
112112 Author=Hansaplast
113113 Description=Lazarus LCL form specifically for my needs
114114```
115115
116116**__PROJNAME__.lpr**:
117117
118118``` pascal
119119 program __PROJNAME__;
120120
121121 {$mode objfpc}{$H+}
122122
123123 uses
124124 {$IFDEF UNIX}{$IFDEF UseCThreads}
125125 cthreads,
126126 {$ENDIF}{$ENDIF}
127127 Interfaces, // this includes the LCL widgetset
128128 Forms, __MAINUNIT__;
129129
130130 {$R *.res}
131131
132132 begin
133133 Application.Initialize;
134134 Application.CreateForm(T__MAINFORM__, __MAINFORM__);
135135 Application.Run;
136136 end.
137137```
138138
139139**__MAINUNIT__.pas**:
140140
141141``` pascal
142142 unit __MAINUNIT__;
143143
144144 {$mode objfpc}{$H+}
145145
146146 interface
147147
148148 uses
149149 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
150150 Buttons, StdCtrls, LCLIntf, LCLType, ComCtrls;
151151
152152 type
153153
154154 { __MAINFORM__ }
155155
156156 T__MAINFORM__ = class(TForm)
157157
158158 ...
159159
160160 procedure T__MAINFORM__.FormPaint(Sender: TObject);
161161 ...
162162
163163 //etc
164164```
165165
166166**__MAINUNIT__.lfm**:
167167
168-``` pascal
168+``` lfm
169169 object __MAINFORM__: T__MAINFORM__
170170 ...
171171```
172172
173173Имейте в виду, что этот краткий учебник только для начинающих, предлагаемый механизм замены переменных может использоваться для самых разных целей. Например, чтобы определить заголовок формы, заявление об авторском праве, веб-ссылку на ваши формы, конкретные объекты и т.д. --Hansaplast 16:30, 4 August 2012 (UTC)
174174
175175---
176176*From the Free Pascal wiki, page "Project Templates/ru", as it stood on 2022-01-30 after a change by RolfW, 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