Difference between revisions of "Project Templates/ru"

From Lazarus wiki
Jump to navigationJump to search
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{MenuTranslate| page=Project Templates}}
+
{{Project Templates}}
  
 
=Обзор=
 
=Обзор=
Line 19: Line 19:
 
По умолчанию движок знает о 2 переменных:
 
По умолчанию движок знает о 2 переменных:
 
*ProjDir: Каталог, в котором будет создан новый проект.
 
*ProjDir: Каталог, в котором будет создан новый проект.
*ProjName: Название проекта.
+
*ProjName: Название нового проекта в ProjDir.
  
 
Дополнительные переменные должны быть определены в файле с именем '''project.ini''' в каталоге проекта. Это - файл в формате Windows INI.
 
Дополнительные переменные должны быть определены в файле с именем '''project.ini''' в каталоге проекта. Это - файл в формате Windows INI.
  
 
Раздел ''[Variables]'' будет сканироваться на предмет имен переменных:
 
Раздел ''[Variables]'' будет сканироваться на предмет имен переменных:
 +
 +
<syntaxhighlight lang="ini">
 
  [Variables]
 
  [Variables]
  VarName1=Description 1
+
  VarName1=Description 1[|DefaultValue 1]
  VarName2=Description 2
+
  VarName2=Description 2[|DefaultValue 2]
 +
</syntaxhighlight>
  
 
Найденные переменные будут представлены с их описанием в диалоговом окне, и пользователь должен представить значение для переменных.
 
Найденные переменные будут представлены с их описанием в диалоговом окне, и пользователь должен представить значение для переменных.
Line 33: Line 36:
  
 
==ProjectFile==
 
==ProjectFile==
Любой файл с именем, равным этому (без расширения), обрабатывается специально, он переименовывается в имя проекта. То есть, вот это ''ProjectFile=example'' заменит ''example.lpi'', ''example.lpr'' и ''example.cfg'' на имя, данное пользователем. По умолчанию предполагается, что значением '''ProjectFile''' является ''project'' (обратите внимание, что файл .ini не копируется)
+
Имя файла (без расширения) lpi-файла проекта шаблона. Любой файл с именем, равным этому (без расширения), обрабатывается специально, он переименовывается в имя проекта. То есть, вот это ''ProjectFile=example'' заменит ''example.lpi'', ''example.lpr'' и ''example.cfg'' на имя, данное пользователем. По умолчанию предполагается, что значением '''ProjectFile''' является ''project'' (обратите внимание, что файл .ini не копируется)
 +
 
 +
ProjectFile не является обязательным. Первый файл *.lpi в папке проекта шаблона будет принят как ProjectFile, если ProjectFile не указан или не существует.
  
 
==Name==
 
==Name==
Line 50: Line 55:
 
Разделенный запятыми список расширений имени файла, которые не следует искать для подстановки ключевых слов.
 
Разделенный запятыми список расширений имени файла, которые не следует искать для подстановки ключевых слов.
  
==Getting Started==
+
==Как начать==
  
'''Step 1;'''
+
'''Шаг 1;'''
  
Create your own template directory (for example ~/.lazarus/mytemplates) and set this path in Lazarus (menu: Tools -> Project Template Options).
+
Создайте свой собственный каталог шаблонов (например, ~ /.lazarus/mytemplates) и установите этот путь в Lazarus (меню: Tools -> Project Template Options).
  
'''Step 2:'''
+
'''Шаг 2:'''
  
For any template functions to even appear in the Lazarus File menu, you will need at least one template which you can base on your existing (normal) project;
+
Чтобы любые шаблонные функции появились в меню File Lazarus'а, вам понадобится как минимум один шаблон, который вы можете использовать в своем существующем (обычном) проекте;
  
- Create a directory in your template directory (for example ~/.lazarus/mytemplates/myfirsttemplate)
+
- Создайте каталог в вашем каталоге шаблонов (например, ~/.lazarus/mytemplates/myfirsttemplate)
  
- Copy your project files in this new directory (*.lfm, *.pas, *.ico, *.lpi, *.lpr, *.res)
+
- Скопируйте файлы вашего проекта в этот новый каталог (*.lfm, *.pas, *.ico, *.lpi, *.lpr, *.res)
  
'''Step 3:'''
+
'''Шаг 3:'''
  
Create a "project.ini" file in the new template directory.
+
Создайте файл ''project.ini'' в новом каталоге шаблонов.
  
The minimum should look something like this:
+
Минимум, [файл] должен выглядеть примерно так:
  
 
project.ini:
 
project.ini:
 +
 +
<syntaxhighlight lang="ini">
 
  [Variables]
 
  [Variables]
 
   
 
   
 
  [Project]  
 
  [Project]  
 
  Name=My Form Template
 
  Name=My Form Template
 +
</syntaxhighlight>
  
''Optional:''
+
'''Необязательно:'''
 +
Приятной особенностью Project Templates является то, что они поддерживают переменные. Так как проект, вероятно, не будет называться так же, как ваш пример шаблона, вам придется внести некоторые изменения в код и переименовать файл.
  
The nice thing of Project Templates is that it supports variables.
+
'''Файлы''':
Since a project will probably not be named the same as your example template you will have to do some code editing and file renaming.
+
Переименуйте файл проекта (ico, lpi, lpr, res) в __PROJNAME __. Ext (где расширение, конечно, является исходным расширением).
 +
Например: project.lpi становится __PROJNAME __. Lpi.
 +
Примечание: содержимое файла lpi может нуждаться в некоторой очистке, например, удаление истории, ссылки на файлы, даже если вы не уверены, нужен ли файл lpi.
  
'''Files''':  
+
'''Содержимое файла''':  
Rename the project file (ico, lpi, lpr, res) to __PROJNAME__.ext (where extension is the original extension of course).
+
Для всех файлов, которые ссылаются на project.lpi и т.д., измените содержимое ваших файлов, чтобы все ссылки на "project" превратились в "__PROJNAME__" (с кавычками)
For example: project.lpi becomes __PROJNAME__.lpi.  
 
Note: the content of the lpi file might need some cleaning, for example removing history, reference to files, not sure if the lpi file is even needed.
 
  
'''File content''':
+
Вы можете опционально определить свои собственные переменные, например, чтобы дать "unit.pas" другое имя файла.
For all files that referred to project.lpi etc, change the content of your files  so all "project" references become "__PROJNAME__" (with the quotes).
+
Например, вы можете определить __MAINUNIT__ и __MAINFORM__ в project.ini как MAINUNIT и MAINFORM - во время создания Lazarus запросит у вас эти имена.
 +
Теперь каждое вхождение __MAINUNIT__, например, будет заменено предоставленным вами текстом (избегайте специальных символов и пробелов).
  
You can optionally define your own variables, for example to give the "unit.pas" a different filename.
+
Обратите внимание, что это работает для всех переменных;
You could define for example __MAINUNIT__ and __MAINFORM__ in project.ini as MAINUNIT and MAINFORM - during creation Lazarus will ask you for these names.
+
Каждое вхождение переменной в именах файлов и содержимом файла будет заменено тем, что вы ввели при создании нового проекта на основе вашего шаблона. Предопределенными переменными являются PROJNAME и PROJDIR, но я пока не нашел назначения для PROJDIR.
Now every occurrence of __MAINUNIT__, for example, will be replaced with the text you provided (avoid special characters and spaces).
 
  
Note that this works for all variables;
+
Некоторые примеры:
Every occurrence of a variable in filenames and file content will be replaced by what you entered on creation of a new project based on your template. Predefined variables are PROJNAME and PROJDIR but I didn't find a purpose for PROJDIR just yet.
 
  
Some examples:
+
'''project.ini'''
  
project.ini
+
<syntaxhighlight lang="ini">
 
 
<syntaxhighlight>
 
 
  [Variables]  
 
  [Variables]  
 
  MAINUNIT=Filename for the default unit.pas file
 
  MAINUNIT=Filename for the default unit.pas file
Line 111: Line 117:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
__PROJNAME__.lpr:
+
'''__PROJNAME__.lpr''':
  
<syntaxhighlight> program __PROJNAME__;
+
<syntaxhighlight lang="pascal">
 +
program __PROJNAME__;
 
   
 
   
 
  {$mode objfpc}{$H+}
 
  {$mode objfpc}{$H+}
Line 133: Line 140:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
__MAINUNIT__.pas:
+
'''__MAINUNIT__.pas''':
  
<syntaxhighlight> unit __MAINUNIT__;
+
<syntaxhighlight lang="pascal">
 +
unit __MAINUNIT__;
 
      
 
      
 
  {$mode objfpc}{$H+}
 
  {$mode objfpc}{$H+}
Line 157: Line 165:
 
    
 
    
 
  //etc
 
  //etc
 +
</syntaxhighlight>
  
 +
'''__MAINUNIT__.lfm''':
  
__MAINUNIT__.lfm:
+
<syntaxhighlight lang="pascal">
 
 
 
  object __MAINFORM__: T__MAINFORM__
 
  object __MAINFORM__: T__MAINFORM__
 
  ...
 
  ...
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Keep in mind that this brief tutorial is just to get you started, the variable replacement mechanism offered can be utilized for many different purposes.
+
Имейте в виду, что этот краткий учебник только для начинающих, предлагаемый механизм замены переменных может использоваться для самых разных целей.
For example to define a form caption, a copyright statement, a web link on your forms, specific objects, etc.
+
Например, чтобы определить заголовок формы, заявление об авторском праве, веб-ссылку на ваши формы, конкретные объекты и т.д.
 
--[[User:Hansaplast|Hansaplast]] 16:30, 4 August 2012 (UTC)
 
--[[User:Hansaplast|Hansaplast]] 16:30, 4 August 2012 (UTC)
 
[[Category:Lazarus]]
 
[[Category:IDE]]
 

Latest revision as of 12:44, 30 January 2022

Deutsch (de) English (en) русский (ru)

Обзор

Вы можете приспособиться при создании новых проектов. Среда IDE позволяет регистрировать собственные типы проектов с помощью пакетов designtime. Пакет projtemplates ( он предварительно установлен в обычных бинарных пакетах Lazarus) позволяет просто использовать существующие проекты в качестве шаблонов.

Пакет projtemplates

Этот пакет реализует шаблоны проектов и поставляется с исходными кодами lazarus (components/projecttemplates/projtemplates.lpk).

Пакет поставляется с предустановленными бинарными пакетами Lazarus (например, установщик Windows). Этот пакет добавляет категорию в диалог File-New: Template projects

Он также добавляет пункт меню New project from Template в меню File, а также меню project template options в разделе Tools [общего] меню. Этот пункт меню отображается только в том случае, если каталог шаблонов (см. следующий абзац) существует и содержит хотя бы один подкаталог шаблонов.

В [разделе] Project template options можно выбрать каталог. Этот каталог должен содержать подкаталог для каждого шаблона. Каждый каталог шаблонов содержит шаблон для проекта: набор файлов, которые будут скопированы и использованы в качестве нового проекта.

Во время копирования пакет будет сканировать имена файлов/каталогов и содержимое файлов для подстановки переменных: __VARNAME__ будет заменено значением переменной VARNAME

По умолчанию движок знает о 2 переменных:

  • ProjDir: Каталог, в котором будет создан новый проект.
  • ProjName: Название нового проекта в ProjDir.

Дополнительные переменные должны быть определены в файле с именем project.ini в каталоге проекта. Это - файл в формате Windows INI.

Раздел [Variables] будет сканироваться на предмет имен переменных:

 [Variables]
 VarName1=Description 1[|DefaultValue 1]
 VarName2=Description 2[|DefaultValue 2]

Найденные переменные будут представлены с их описанием в диалоговом окне, и пользователь должен представить значение для переменных.

Файл project.ini может содержать второй раздел, называемый Project, который может содержать некоторую информацию о проекте. Здесь можно найти следующие ключевые слова:

ProjectFile

Имя файла (без расширения) lpi-файла проекта шаблона. Любой файл с именем, равным этому (без расширения), обрабатывается специально, он переименовывается в имя проекта. То есть, вот это ProjectFile=example заменит example.lpi, example.lpr и example.cfg на имя, данное пользователем. По умолчанию предполагается, что значением ProjectFile является project (обратите внимание, что файл .ini не копируется)

ProjectFile не является обязательным. Первый файл *.lpi в папке проекта шаблона будет принят как ProjectFile, если ProjectFile не указан или не существует.

Name

Название шаблона. Имя и описание будут представлены в диалоге 'File-New'.

Author

Автор шаблона

Description

Краткое (однострочное) описание проекта. Имя и описание будут представлены в диалоге 'File-New'.

Recurse

Логическое значение (1/0), которое указывает движку [осуществлять] рекурсивный [поиск] в подкаталогах или нет.

Exclude

Разделенный запятыми список расширений имени файла, которые не следует искать для подстановки ключевых слов.

Как начать

Шаг 1;

Создайте свой собственный каталог шаблонов (например, ~ /.lazarus/mytemplates) и установите этот путь в Lazarus (меню: Tools -> Project Template Options).

Шаг 2:

Чтобы любые шаблонные функции появились в меню File Lazarus'а, вам понадобится как минимум один шаблон, который вы можете использовать в своем существующем (обычном) проекте;

- Создайте каталог в вашем каталоге шаблонов (например, ~/.lazarus/mytemplates/myfirsttemplate)

- Скопируйте файлы вашего проекта в этот новый каталог (*.lfm, *.pas, *.ico, *.lpi, *.lpr, *.res)

Шаг 3:

Создайте файл project.ini в новом каталоге шаблонов.

Минимум, [файл] должен выглядеть примерно так:

project.ini:

 [Variables]
 
 [Project] 
 Name=My Form Template

Необязательно: Приятной особенностью Project Templates является то, что они поддерживают переменные. Так как проект, вероятно, не будет называться так же, как ваш пример шаблона, вам придется внести некоторые изменения в код и переименовать файл.

Файлы: Переименуйте файл проекта (ico, lpi, lpr, res) в __PROJNAME __. Ext (где расширение, конечно, является исходным расширением). Например: project.lpi становится __PROJNAME __. Lpi. Примечание: содержимое файла lpi может нуждаться в некоторой очистке, например, удаление истории, ссылки на файлы, даже если вы не уверены, нужен ли файл lpi.

Содержимое файла: Для всех файлов, которые ссылаются на project.lpi и т.д., измените содержимое ваших файлов, чтобы все ссылки на "project" превратились в "__PROJNAME__" (с кавычками)

Вы можете опционально определить свои собственные переменные, например, чтобы дать "unit.pas" другое имя файла. Например, вы можете определить __MAINUNIT__ и __MAINFORM__ в project.ini как MAINUNIT и MAINFORM - во время создания Lazarus запросит у вас эти имена. Теперь каждое вхождение __MAINUNIT__, например, будет заменено предоставленным вами текстом (избегайте специальных символов и пробелов).

Обратите внимание, что это работает для всех переменных; Каждое вхождение переменной в именах файлов и содержимом файла будет заменено тем, что вы ввели при создании нового проекта на основе вашего шаблона. Предопределенными переменными являются PROJNAME и PROJDIR, но я пока не нашел назначения для PROJDIR.

Некоторые примеры:

project.ini

 [Variables] 
 MAINUNIT=Filename for the default unit.pas file
 MAINFORM=Form name
 
 [Project]
 Name=My Custom Form
 Author=Hansaplast
 Description=Lazarus LCL form specifically for my needs

__PROJNAME__.lpr:

 program __PROJNAME__;
 
 {$mode objfpc}{$H+}
   
 uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  {$ENDIF}{$ENDIF}
  Interfaces, // this includes the LCL widgetset
  Forms, __MAINUNIT__; 
   
 {$R *.res}
   
 begin
  Application.Initialize;
  Application.CreateForm(T__MAINFORM__, __MAINFORM__);
  Application.Run;
 end.

__MAINUNIT__.pas:

 unit __MAINUNIT__;
    
 {$mode objfpc}{$H+}
   
 interface
   
 uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  Buttons, StdCtrls, LCLIntf, LCLType, ComCtrls;
   
 type
   
  { __MAINFORM__ }
   
  T__MAINFORM__ = class(TForm)
   
 ...
   
 procedure T__MAINFORM__.FormPaint(Sender: TObject);
 ...
   
 //etc

__MAINUNIT__.lfm:

 object __MAINFORM__: T__MAINFORM__
 ...

Имейте в виду, что этот краткий учебник только для начинающих, предлагаемый механизм замены переменных может использоваться для самых разных целей. Например, чтобы определить заголовок формы, заявление об авторском праве, веб-ссылку на ваши формы, конкретные объекты и т.д. --Hansaplast 16:30, 4 August 2012 (UTC)