Difference between revisions of "KOL-CE/ru"

From Lazarus wiki
Jump to navigationJump to search
 
(15 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
{{KOL-CE}}
 
{{KOL-CE}}
 
==Введение==
 
==Введение==
KOL-CE - это KOL&MCK созданная Владимиром Кладовым(http://kolmck.net), портированная под free pascal/Lazarus. KOL-CE создана Юрием Сидоровым и  распространяется под [http://www.opensource.org/licenses/wxwindows.php wxWindows Library Licence].
+
KOL-CE - это [http://f0460945.xsph.ru/rindex.htm KOL&MCK] от Владимира Кладова, портированная под Free Pascal/Lazarus. KOL-CE создана Юрием Сидоровым и  распространяется под [http://www.opensource.org/licenses/wxwindows.php wxWindows Library Licence].
  
KOL-CE позволяет создавать очень компактные Win32/WinCE приложения с GUI (начиная от ~40KB приложения с пустой формой).
+
KOL-CE позволяет создавать очень компактные Win32/WinCE GUI приложения (начиная от ~40KB приложения с пустой формой).
  
MCK это пакет Lazarus, позволяющий проектировать приложения KOL-CE визуально, используя Lazarus IDE.
+
MCK это пакет, позволяющий проектировать приложения KOL-CE визуально, используя Lazarus IDE.
  
Изначально KOL-CE планировался как KOL, портированный только для [[WinCE port|WinCE]]. Но потом было решено оставить функции Win32 и доделать его работу с FPC. Оригинальный KOL предназначалась для Delphi и работает с free pascal с ошибками. А оригинал MCK вообще нельзя было использовать для Lazarus.
+
Изначально KOL-CE планировался как KOL, портированный только для [[WinCE port|WinCE]]. Но потом было решено оставить функции Win32 и доделать его работу с FPC. Оригинальный KOL предназначалась для Delphi и работает во Free Pascal с ошибками. А оригинал MCK вообще нельзя было использовать для Lazarus.
  
 
=== Требования ===
 
=== Требования ===
Line 19: Line 19:
  
 
== Загрузка ==
 
== Загрузка ==
Последний релиз KOL-CE можно скачать отсюда: [http://sourceforge.net/project/showfiles.php?group_id=188451 here].
+
Последний релиз KOL-CE можно скачать [http://sourceforge.net/project/showfiles.php?group_id=188451 здесь].
  
Также вы можете получить свежие исходники KOL-CE из svn по этой ссылке: https://kol-ce.svn.sourceforge.net/svnroot/kol-ce/trunk
+
Также вы можете получить свежие исходники KOL-CE из [https://kol-ce.svn.sourceforge.net/svnroot/kol-ce/trunk SVN].
  
 
== Установка ==
 
== Установка ==
Line 66: Line 66:
 
Не используйте элементы из RTL/FCL/LCL, особенно из SysUtils, Classes, Forms и подобных им. Всё необходимое придётся искать в модулях KOL, Windows, Messages. А может быть, вы напишете что-то сами (или скопируете из других исходников).
 
Не используйте элементы из RTL/FCL/LCL, особенно из SysUtils, Classes, Forms и подобных им. Всё необходимое придётся искать в модулях KOL, Windows, Messages. А может быть, вы напишете что-то сами (или скопируете из других исходников).
 
Если вы пишете в зеркальном проекте (mirror project) - Обычно поместите его в обработчики событий.
 
Если вы пишете в зеркальном проекте (mirror project) - Обычно поместите его в обработчики событий.
You also can add any code where you wish but avoid changing first section of your mirror LCL form class declaration. And do not change auto-generated inc-files.
+
Вы также можете добавлять любой код где пожелаете, но избегайте изменения первой секции объявления класса вашей зеркальной LCL формы. И не изменяйте автоматически созданные inc-файлы.
Always remember, that code, that you write in mirror project, must be accepted both by LCL and KOL. By LCL - at the stage of compiling mirror project (and this is necessary, because otherwise converting mirror project to reflected KOL project will not be possible). And by KOL - at the stage of compiling written code in KOL namespace.
+
Всегда помните, что код, который вы пишете в зеркальном проекте, должен быть принят и  LCL, и KOL. LCL - на этапе компиляции зеркального проекта (и это необходимо, потому что иначе конвертация зеркального проекта в отражённый KOL проект будет невозможна). А KOL - на этапе компиляции написанного кода в KOL.
  
=== IMPORTANT ===
+
=== Важно ===
To resolve conflict between words <tt>LCL.Self</tt> and <tt>KOL.@Self</tt>, which are interpreted differently in KOL and LCL, special field is introduced - <tt>Form</tt>. In LCL, <tt>Form</tt> property of <tt>TKOLForm</tt> component "returns" <tt>Self</tt>, i.e. form object itself. And in KOL, <tt>Form: PControl</tt> is a field of object, containing resulting form object. Since this, it is correctly to change form's properties in following way:
+
Для решения конфликта между словами <tt>LCL.Self</tt> и <tt>KOL.@Self</tt>, которые интерпретируются по-разному в KOL и LCL, добавлен специальный компонент - <tt>Form</tt>. В LCL, свойство <tt>Form</tt> типа компонент <tt>TKOLForm</tt> "возвращает" <tt>Self</tt>, То есть форму. А в KOL, <tt>Form: PControl</tt> - это поле-объект, содержащий сам объект-форму. Поэтому, вместо
 +
MainForm.caption := 'Hello!', где MainForm - ваша форма, пишите
 
  Form.Caption := 'Hello!';  
 
  Form.Caption := 'Hello!';  
(Though old-style operator Caption := 'Hello!'; is compiled normally while converting mirror project to KOL, it will be wrong in KOL environment).
+
(Старое обращение Caption := 'Hello!'; компилируется нормально при преобразовании зеркального проекта в KOL, однако в самом(без MCK) KOL это будет неправильно).
But discussed above word <tt>Form</tt> is only to access form's properties - not its child controls. You access child controls and form event handlers by usual way. e.g.:  
+
Но через <tt>Form</tt> можно обращаться только к свойствам формы - не к дочерним компонентам. Вам доступны дочерние компоненты и обработчики событий черес саму форму. например:  
 
  Button1.Caption := 'OK';
 
  Button1.Caption := 'OK';
 
  Button1Click(Form);
 
  Button1Click(Form);
  
=== Run-time form creation ===
+
=== Run-time создание форм ===
It is possible to create several instances of the same form at run-time. And at least, it is possible to make form not AutoCreate, and create it programmatically when needed. Use global function <tt>NewForm1</tt> (replacing Form1 with your mirror form name), for instance:
+
Можно создать несколько экземпляров одной и той же формы во время выполнения программы. Притом можно сделать не АвтоСоздаваемую форму, а создавать её программно, когда это необходимо. Используйте глобальную функцию <tt>NewForm1</tt> (замените Form1 на имя вашей зеркальной формы) например:
 
  NewForm1( TempForm1, Applet );
 
  NewForm1( TempForm1, Applet );
To make this possible, NEVER access global variable created in the unit during conversation, unless You know why You are doing so. Refer to Form variable instead.
+
Для таких созданных во время выполнения форм справедливо то же правило, что и дляавтосозданных - обращайтесь к сваойствам формы через свойство-объект <tt>Form</tt>
  
 
== WinCE ==
 
== WinCE ==
====Setup====
+
====Установка====
 
[[Image:arm-wince-target.png|right|arm-wince target]]
 
[[Image:arm-wince-target.png|right|arm-wince target]]
You need to install arm-wince cross compiler for Win32 to compile WinCE executables. Get it [http://www.freepascal.org/download.var here].
+
Для начала надо установить кросскомпилятор arm-wince for Win32 для компиляции исполняемых файлов WinCE. Можно скачать [http://www.freepascal.org/download.var здесь]. Нужно скачать lazarus с кросскомпилятором в комплекте и затем установить поверх уже установленного Lazarus'a, то есть в ту же папку.
  
To compiler for arm-wince target open compiler options of your project using '''Project > Compiler options...''' menu item. Open '''Code''' tab and change target platform to arm-wince.
+
Чтобы компилировать под arm-wince откройте параметры компилятора для вашего проекта, выбрав пункт меню '''Project > Compiler options...'''. Откройте вкладку '''Code''' ('''Код''') и поменяйте операционную систему на WinCE, а целевое семейство процессоров на arm.
  
'''NOTE:''' You can receive the following error while compiling your KOL-CE project for WinCE:
+
На вкладке '''Пути''' поменяйте библиотеку виджетов LCL на WinCe.
 +
 
 +
'''ПРИМЕЧАНИЕ:''' Вы можете получить следующие сообщения об ошибке во время компиляции вашего KOL-CE проекта для WinCE:
 
  Compiling resource KOL-CE.rc
 
  Compiling resource KOL-CE.rc
 
  arm-wince-windres.exe: no resources
 
  arm-wince-windres.exe: no resources
Line 95: Line 98:
 
  KOL.PAS(57901) Fatal: There were 1 errors compiling module, stopping
 
  KOL.PAS(57901) Fatal: There were 1 errors compiling module, stopping
  
In such case you need to edit Windows '''PATH''' environment variable and add path to folder where win32 fpc binaries are located.<br>
+
В таком случае вам нужно изменить переменную окружения '''PATH''' '''Windows''' и добавить путь к папке, где расположены файлы win32 FPC.<br>
To find out which path to add, go to '''Environment options''' in Lazarus and see compiler path.<br>
+
Чтобы узнать, какой путь добавить, перейдите на'''Окружение'''>'''Параметры''' в Lazarus и посмотреть путь к компилятору.<br>
'''Quit Lazarus before editing PATH'''.<br>
+
'''Перед изменением PATH закройте Lazarus'''.<br>
To edit '''PATH''' variable right click on '''My Computer''' icon go to '''Advanced''' tab and click '''Environment Variables''' button.
+
====Редактирование переменной окружения '''PATH'''====
 +
=====в Windows XP=====
 +
1.Правой кнопкой мыши щелкните по значку "Мой компьютер" и выберите пункт меню "Свойства".
 +
2.Перейдите на вкладку "Дополнительно".
 +
3.Нажмите кнопку "Переменные среды".
 +
4.Выберите в списке переменную path, нажмите '''изменить''' и через точку с запятой добавьте путь к папке.
 +
 
 +
=====в Windows 7=====
 +
1.Нажмите пуск.
 +
2.Нажмите правой кнопкой мыши по пункту '''Компьютер'''.Выберите пункт меню свойства.
 +
3.Нажмите на '''Дополнительные параметры системы''' (список слева).
 +
4.На вкладке '''Дополнительно''' нажмите кнопку '''Переменные среды'''.
 +
5.Выберите в списке переменную path, нажмите '''изменить''' и через точку с запятой добавьте путь к папке.
  
 
====Hints and notes====
 
====Hints and notes====
* To make form fullscreen as most Pocket PC applications have, don't change the form position and size. If form size and/or position was changed the form will look like dialog with caption and close button. In MCK set '''defaultSize''' and '''defaultPosition''' of TKOLForm to True to make form fullscreen.
+
* Чтобы сделать полноэкранный вид, не пытайтесь изменить позицию окна и его размер. Если попытаться это сделать, форма будет выглядеть как диалог с заголовком и кнопкой закрыть. В MCK установите '''defaultSize''' и '''defaultPosition''' of TKOLForm в True для достижения цели.
  
====Known issues====
+
====Известные проблемы====
* The following components are not supported: RichEdit.
+
* Следующие компоненты не поддерживаются: RichEdit.
* Transparency and double buffering are not supported.
+
* Прозрачность и двойная буферизация также не поддерживаются.
* Only gsVertical, gsHorizontal gradient panel styles are supported.
+
* Работают значения свойства gradient panel styles только gsVertical и gsHorizontal.
* Horizontal text alignment does not work in single line edit control. Use memo if you need text alignment.
+
* Горизонтальное выравнивание текста не работет в однострочном компоненте edit. Используйте memo если вам оно нужно.
 
* Vertical text alignment does not work for panel and label.
 
* Vertical text alignment does not work for panel and label.
  
== Documentation ==
+
== Документация ==
* Visit official KOL&MCK website for documentation and information: http://kolmck.net
+
* Посетите официальный сайт KOL&MCK для получения документации и информации: http://kolmck.ru
* Read MCK documentation in '''KOLmirrorReadme.txt''' file inside MCK folder.
+
* Прочитайте документацию MCK в файле '''KOLmirrorReadme.txt''', лежащем в папке MCK.
  
== KOL-CE in real-world applications ==
+
== Приложения, использующие KOL-CE ==
 
* [http://www.cp-lab.com/windows-mobile.html Password Manager XP Mobile]
 
* [http://www.cp-lab.com/windows-mobile.html Password Manager XP Mobile]
 
* [http://blog.carolos.za.net/2007/05/charmed-for-pocket-pc-beta-030.html ChARMeD disassembler]
 
* [http://blog.carolos.za.net/2007/05/charmed-for-pocket-pc-beta-030.html ChARMeD disassembler]
 
* [http://www.jongma.org/WMWifiRouter/ WMWifiRouter]
 
* [http://www.jongma.org/WMWifiRouter/ WMWifiRouter]
  
== See also ==
+
== См. также ==
* Official KOL&MCK website http://kolmck.net
+
* [http://f0460945.xsph.ru/rindex.htm Официальный вебсайт KOL&MCK]
* KOL-CE page at SourceForge http://sourceforge.net/projects/kol-ce/
+
* Страничку KOL-CE на SourceForge http://sourceforge.net/projects/kol-ce/
* [[WinCE port|WinCE port of Free Pascal]]
+
* [http://wiki.lazarus.freepascal.org/WinCE_port/ru Портирование на WinCE c помощью Free Pascal]
 
* [[Windows CE Interface]]
 
* [[Windows CE Interface]]
 
* [[Windows CE Development Notes]]
 
* [[Windows CE Development Notes]]
Line 128: Line 143:
 
== Contacts ==
 
== Contacts ==
 
Report bugs, submit patches and ask questions at project's page at SourceForge: http://sourceforge.net/projects/kol-ce/
 
Report bugs, submit patches and ask questions at project's page at SourceForge: http://sourceforge.net/projects/kol-ce/
 +
 +
 +
{{AutoCategory}}
 +
[[Category:Components/ru]]
 +
[[Category:WinCE/ru]]

Latest revision as of 17:29, 29 April 2021

Windows logo - 2012.svg

Эта статья относится только к Windows.

См. также: Multiplatform Programming Guide

WinCE Logo.png

Эта статья относится только к Windows CE.

См. также: Multiplatform Programming Guide

English (en) français (fr) 한국어 (ko) русский (ru) 中文(中国大陆)‎ (zh_CN) 中文(台灣)‎ (zh_TW)

Введение

KOL-CE - это KOL&MCK от Владимира Кладова, портированная под Free Pascal/Lazarus. KOL-CE создана Юрием Сидоровым и распространяется под wxWindows Library Licence.

KOL-CE позволяет создавать очень компактные Win32/WinCE GUI приложения (начиная от ~40KB приложения с пустой формой).

MCK это пакет, позволяющий проектировать приложения KOL-CE визуально, используя Lazarus IDE.

Изначально KOL-CE планировался как KOL, портированный только для WinCE. Но потом было решено оставить функции Win32 и доделать его работу с FPC. Оригинальный KOL предназначалась для Delphi и работает во Free Pascal с ошибками. А оригинал MCK вообще нельзя было использовать для Lazarus.

Требования

  • Free Pascal compiler 2.2.0 или позже для Win32.
  • arm-wince cross compiler 2.2.0 или позже для Win32 (for WinCE development).
  • Lazarus 0.9.26 или позже для Win32.

Поддерживаемые платформы:

  • Все 32-битные Windows: от Windows 95 до Windows 7.
  • Windows CE для PocketPC и смартфонов.

Загрузка

Последний релиз KOL-CE можно скачать здесь.

Также вы можете получить свежие исходники KOL-CE из SVN.

Установка


Важно: После KOL-CE 2.80.2 определение DisableFakeMethods больше не требуется.

Если раньше вы использовали KOL-CE 2.80.1 или ранее, вам надо пересобрать Lazarus без определения DisableFakeMethods перед установкой пакета MCK. Иначе обработчики событий не будут работать!

Сделаем это:

  1. Запустить Lazarus.
  2. Выбрать пункт Tools > Configure "Build Lazarus"... (Сервис > Параметры сборки Lazarus...).
  3. Выбрать Clean Up + Build all(Очистить всё + собрать всё) на странице Quick Build Options (простые параметры сборки).
  4. Открыть страницу Advanced Build Options (Расширенные параметры сборки) и remove -dDisableFakeMethods из поля ввода Options .
  5. Кликнуть по кнопке Build для пересборки Lazarus.

MCK package
  1. Загрузите KOL-CE и поместите куда-нибудь рядом с Лазарусом.
  2. Запустите Lazarus и выберите пункты меню Components > Load package file. Укажите папку MCK и выберите файл MirrorKOLPackage.lpk.
  3. Появится окно содержимого пакета. Нажмите кнопку Install.
  4. Лазарус скомпилирует пакет MCK перезапустится.
  5. После этого на палитре компонентов появится вкладка KOL.

KOL components palette

СОВЕТ: Если вы видите не все компоненты KOL на палитре компонентов, увеличьте размер окна по вертикали. Появится вторая строка с недостающими копонентами (см. скриншот).

Обновить пакет MCK очень легко. Просто перезапишите обновленные KOL-CE исходники поверх (вместо) старых, откройте пакет MCK через Lazarus и нажмите Install, пакет перекомпилится, и будет вам счастье!

Особенности использования MCK

Создание нового проекта

MCK form
  1. Запустите Lazarus, выберите File > New... (Файл > Создать ...).
  2. Выберите KOL Application в секции Project и нежмите OK.
  3. Будет создан новый KOL проект.
  4. Сохраните проект под новым именем.
  5. Продукт готов к использованию, срок годности ограничен вашей фантазией =). Можете развлекаться!

Добавление формы

  1. Выберите File > New... (Файл > Создать ...).
  2. Выберите KOL Form(иногда просто Form) в секции File (Модуль) и нажмите OK.
  3. Сохраните модуль с формой под новым именем.

Особенности написания кода

Не используйте элементы из RTL/FCL/LCL, особенно из SysUtils, Classes, Forms и подобных им. Всё необходимое придётся искать в модулях KOL, Windows, Messages. А может быть, вы напишете что-то сами (или скопируете из других исходников). Если вы пишете в зеркальном проекте (mirror project) - Обычно поместите его в обработчики событий. Вы также можете добавлять любой код где пожелаете, но избегайте изменения первой секции объявления класса вашей зеркальной LCL формы. И не изменяйте автоматически созданные inc-файлы. Всегда помните, что код, который вы пишете в зеркальном проекте, должен быть принят и LCL, и KOL. LCL - на этапе компиляции зеркального проекта (и это необходимо, потому что иначе конвертация зеркального проекта в отражённый KOL проект будет невозможна). А KOL - на этапе компиляции написанного кода в KOL.

Важно

Для решения конфликта между словами LCL.Self и KOL.@Self, которые интерпретируются по-разному в KOL и LCL, добавлен специальный компонент - Form. В LCL, свойство Form типа компонент TKOLForm "возвращает" Self, То есть форму. А в KOL, Form: PControl - это поле-объект, содержащий сам объект-форму. Поэтому, вместо

MainForm.caption := 'Hello!', где MainForm - ваша форма, пишите
Form.Caption := 'Hello!'; 

(Старое обращение Caption := 'Hello!'; компилируется нормально при преобразовании зеркального проекта в KOL, однако в самом(без MCK) KOL это будет неправильно). Но через Form можно обращаться только к свойствам формы - не к дочерним компонентам. Вам доступны дочерние компоненты и обработчики событий черес саму форму. например:

Button1.Caption := 'OK';
Button1Click(Form);

Run-time создание форм

Можно создать несколько экземпляров одной и той же формы во время выполнения программы. Притом можно сделать не АвтоСоздаваемую форму, а создавать её программно, когда это необходимо. Используйте глобальную функцию NewForm1 (замените Form1 на имя вашей зеркальной формы) например:

NewForm1( TempForm1, Applet );

Для таких созданных во время выполнения форм справедливо то же правило, что и дляавтосозданных - обращайтесь к сваойствам формы через свойство-объект Form

WinCE

Установка

arm-wince target

Для начала надо установить кросскомпилятор arm-wince for Win32 для компиляции исполняемых файлов WinCE. Можно скачать здесь. Нужно скачать lazarus с кросскомпилятором в комплекте и затем установить поверх уже установленного Lazarus'a, то есть в ту же папку.

Чтобы компилировать под arm-wince откройте параметры компилятора для вашего проекта, выбрав пункт меню Project > Compiler options.... Откройте вкладку Code (Код) и поменяйте операционную систему на WinCE, а целевое семейство процессоров на arm.

На вкладке Пути поменяйте библиотеку виджетов LCL на WinCe.

ПРИМЕЧАНИЕ: Вы можете получить следующие сообщения об ошибке во время компиляции вашего KOL-CE проекта для WinCE:

Compiling resource KOL-CE.rc
arm-wince-windres.exe: no resources
KOL.PAS(57901) Error: Error while linking
KOL.PAS(57901) Fatal: There were 1 errors compiling module, stopping

В таком случае вам нужно изменить переменную окружения PATH Windows и добавить путь к папке, где расположены файлы win32 FPC.
Чтобы узнать, какой путь добавить, перейдите наОкружение>Параметры в Lazarus и посмотреть путь к компилятору.
Перед изменением PATH закройте Lazarus.

Редактирование переменной окружения PATH

в Windows XP

1.Правой кнопкой мыши щелкните по значку "Мой компьютер" и выберите пункт меню "Свойства". 2.Перейдите на вкладку "Дополнительно". 3.Нажмите кнопку "Переменные среды". 4.Выберите в списке переменную path, нажмите изменить и через точку с запятой добавьте путь к папке.

в Windows 7

1.Нажмите пуск. 2.Нажмите правой кнопкой мыши по пункту Компьютер.Выберите пункт меню свойства. 3.Нажмите на Дополнительные параметры системы (список слева). 4.На вкладке Дополнительно нажмите кнопку Переменные среды. 5.Выберите в списке переменную path, нажмите изменить и через точку с запятой добавьте путь к папке.

Hints and notes

  • Чтобы сделать полноэкранный вид, не пытайтесь изменить позицию окна и его размер. Если попытаться это сделать, форма будет выглядеть как диалог с заголовком и кнопкой закрыть. В MCK установите defaultSize и defaultPosition of TKOLForm в True для достижения цели.

Известные проблемы

  • Следующие компоненты не поддерживаются: RichEdit.
  • Прозрачность и двойная буферизация также не поддерживаются.
  • Работают значения свойства gradient panel styles только gsVertical и gsHorizontal.
  • Горизонтальное выравнивание текста не работет в однострочном компоненте edit. Используйте memo если вам оно нужно.
  • Vertical text alignment does not work for panel and label.

Документация

  • Посетите официальный сайт KOL&MCK для получения документации и информации: http://kolmck.ru
  • Прочитайте документацию MCK в файле KOLmirrorReadme.txt, лежащем в папке MCK.

Приложения, использующие KOL-CE

См. также

Contacts

Report bugs, submit patches and ask questions at project's page at SourceForge: http://sourceforge.net/projects/kol-ce/