Sign in Join
Wiki copytemporary

Project Templates/ru: what changed

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

Title: Project Templates/ru

OldNewLine
1+# Обзор
2+
3+Вы можете приспособиться при создании новых проектов. Среда IDE позволяет регистрировать собственные типы проектов с помощью пакетов designtime. Пакет **projtemplates** ( он предварительно установлен в обычных бинарных пакетах Lazarus) позволяет просто использовать существующие проекты в качестве шаблонов.
4+
5+# Пакет projtemplates
6+
7+Этот пакет реализует шаблоны проектов и поставляется с исходными кодами lazarus (components/projecttemplates/projtemplates.lpk).
8+
9+Пакет поставляется с предустановленными бинарными пакетами Lazarus (например, установщик Windows). Этот пакет добавляет категорию в диалог **File-New**: **Template projects**
10+
11+Он также добавляет пункт меню **New project from Template** в меню **File**, а также меню **project template options** в разделе **Tools** \[общего\] меню. Этот пункт меню отображается только в том случае, если каталог шаблонов (см. следующий абзац) существует и содержит хотя бы один подкаталог шаблонов.
12+
13+В \[разделе\] *Project template options* можно выбрать каталог. Этот каталог должен содержать подкаталог для каждого шаблона. Каждый каталог шаблонов содержит шаблон для проекта: набор файлов, которые будут скопированы и использованы в качестве нового проекта.
14+
15+Во время копирования пакет будет сканировать имена файлов/каталогов и содержимое файлов для подстановки переменных: **__VARNAME__** будет заменено значением переменной VARNAME
16+
17+По умолчанию движок знает о 2 переменных:
18+
19+- ProjDir: Каталог, в котором будет создан новый проект.
20+- ProjName: Название нового проекта в ProjDir.
21+
22+Дополнительные переменные должны быть определены в файле с именем **project.ini** в каталоге проекта. Это - файл в формате Windows INI.
23+
24+Раздел *\[Variables\]* будет сканироваться на предмет имен переменных:
25+
26+``` ini
27+ [Variables]
28+ VarName1=Description 1[|DefaultValue 1]
29+ VarName2=Description 2[|DefaultValue 2]
30+```
31+
32+Найденные переменные будут представлены с их описанием в диалоговом окне, и пользователь должен представить значение для переменных.
33+
34+Файл *project.ini* может содержать второй раздел, называемый *Project*, который может содержать некоторую информацию о проекте. Здесь можно найти следующие ключевые слова:
35+
36+## ProjectFile
37+
38+Имя файла (без расширения) lpi-файла проекта шаблона. Любой файл с именем, равным этому (без расширения), обрабатывается специально, он переименовывается в имя проекта. То есть, вот это *ProjectFile=example* заменит *example.lpi*, *example.lpr* и *example.cfg* на имя, данное пользователем. По умолчанию предполагается, что значением **ProjectFile** является *project* (обратите внимание, что файл .ini не копируется)
39+
40+ProjectFile не является обязательным. Первый файл *.lpi в папке проекта шаблона будет принят как ProjectFile, если ProjectFile не указан или не существует.
41+
42+## Name
43+
44+Название шаблона. Имя и описание будут представлены в диалоге 'File-New'.
45+
46+## Author
47+
48+Автор шаблона
49+
50+## Description
51+
52+Краткое (однострочное) описание проекта. Имя и описание будут представлены в диалоге 'File-New'.
53+
54+## Recurse
55+
56+Логическое значение (1/0), которое указывает движку \[осуществлять\] рекурсивный \[поиск\] в подкаталогах или нет.
57+
58+## Exclude
59+
60+Разделенный запятыми список расширений имени файла, которые не следует искать для подстановки ключевых слов.
61+
62+## Как начать
63+
64+**Шаг 1;**
65+
66+Создайте свой собственный каталог шаблонов (например, ~ /.lazarus/mytemplates) и установите этот путь в Lazarus (меню: Tools -\> Project Template Options).
67+
68+**Шаг 2:**
69+
70+Чтобы любые шаблонные функции появились в меню File Lazarus'а, вам понадобится как минимум один шаблон, который вы можете использовать в своем существующем (обычном) проекте;
71+
72+\- Создайте каталог в вашем каталоге шаблонов (например, ~/.lazarus/mytemplates/myfirsttemplate)
73+
74+\- Скопируйте файлы вашего проекта в этот новый каталог (*.lfm, *.pas, *.ico, *.lpi, *.lpr, *.res)
75+
76+**Шаг 3:**
77+
78+Создайте файл *project.ini* в новом каталоге шаблонов.
79+
80+Минимум, \[файл\] должен выглядеть примерно так:
81+
82+project.ini:
83+
84+``` ini
85+ [Variables]
86+
87+ [Project]
88+ Name=My Form Template
89+```
90+
91+**Необязательно:** Приятной особенностью Project Templates является то, что они поддерживают переменные. Так как проект, вероятно, не будет называться так же, как ваш пример шаблона, вам придется внести некоторые изменения в код и переименовать файл.
92+
93+**Файлы**: Переименуйте файл проекта (ico, lpi, lpr, res) в __PROJNAME __. Ext (где расширение, конечно, является исходным расширением). Например: project.lpi становится __PROJNAME __. Lpi. Примечание: содержимое файла lpi может нуждаться в некоторой очистке, например, удаление истории, ссылки на файлы, даже если вы не уверены, нужен ли файл lpi.
94+
95+**Содержимое файла**: Для всех файлов, которые ссылаются на project.lpi и т.д., измените содержимое ваших файлов, чтобы все ссылки на "project" превратились в "__PROJNAME__" (с кавычками)
96+
97+Вы можете опционально определить свои собственные переменные, например, чтобы дать "unit.pas" другое имя файла. Например, вы можете определить __MAINUNIT__ и __MAINFORM__ в project.ini как MAINUNIT и MAINFORM - во время создания Lazarus запросит у вас эти имена. Теперь каждое вхождение __MAINUNIT__, например, будет заменено предоставленным вами текстом (избегайте специальных символов и пробелов).
98+
99+Обратите внимание, что это работает для всех переменных; Каждое вхождение переменной в именах файлов и содержимом файла будет заменено тем, что вы ввели при создании нового проекта на основе вашего шаблона. Предопределенными переменными являются PROJNAME и PROJDIR, но я пока не нашел назначения для PROJDIR.
100+
101+Некоторые примеры:
102+
103+**project.ini**
104+
105+``` ini
106+ [Variables]
107+ MAINUNIT=Filename for the default unit.pas file
108+ MAINFORM=Form name
109+
110+ [Project]
111+ Name=My Custom Form
112+ Author=Hansaplast
113+ Description=Lazarus LCL form specifically for my needs
114+```
115+
116+**__PROJNAME__.lpr**:
117+
118+``` pascal
119+ program __PROJNAME__;
120+
121+ {$mode objfpc}{$H+}
122+
123+ uses
124+ {$IFDEF UNIX}{$IFDEF UseCThreads}
125+ cthreads,
126+ {$ENDIF}{$ENDIF}
127+ Interfaces, // this includes the LCL widgetset
128+ Forms, __MAINUNIT__;
129+
130+ {$R *.res}
131+
132+ begin
133+ Application.Initialize;
134+ Application.CreateForm(T__MAINFORM__, __MAINFORM__);
135+ Application.Run;
136+ end.
137+```
138+
139+**__MAINUNIT__.pas**:
140+
141+``` pascal
142+ unit __MAINUNIT__;
143+
144+ {$mode objfpc}{$H+}
145+
146+ interface
147+
148+ uses
149+ Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
150+ Buttons, StdCtrls, LCLIntf, LCLType, ComCtrls;
151+
152+ type
153+
154+ { __MAINFORM__ }
155+
156+ T__MAINFORM__ = class(TForm)
157+
158+ ...
159+
160+ procedure T__MAINFORM__.FormPaint(Sender: TObject);
161+ ...
162+
163+ //etc
164+```
165+
166+**__MAINUNIT__.lfm**:
167+
168+``` pascal
169+ object __MAINFORM__: T__MAINFORM__
170+ ...
171+```
172+
173+Имейте в виду, что этот краткий учебник только для начинающих, предлагаемый механизм замены переменных может использоваться для самых разных целей. Например, чтобы определить заголовок формы, заявление об авторском праве, веб-ссылку на ваши формы, конкретные объекты и т.д. --Hansaplast 16:30, 4 August 2012 (UTC)
174+
175+---
176+*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