Sign in Join
Wiki copytemporary

KOL-CE/ru: what changed

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

OldNewLine
11## Введение
22
33KOL-CE - это [KOL&MCK](http://f0460945.xsph.ru/rindex.htm) от Владимира Кладова, портированная под Free Pascal/Lazarus. KOL-CE создана Юрием Сидоровым и распространяется под [wxWindows Library Licence](http://www.opensource.org/licenses/wxwindows.php).
44
55KOL-CE позволяет создавать очень компактные Win32/WinCE GUI приложения (начиная от ~40KB приложения с пустой формой).
66
77MCK это пакет, позволяющий проектировать приложения KOL-CE визуально, используя Lazarus IDE.
88
99Изначально KOL-CE планировался как KOL, портированный только для [[WinCE port|WinCE]]. Но потом было решено оставить функции Win32 и доделать его работу с FPC. Оригинальный KOL предназначалась для Delphi и работает во Free Pascal с ошибками. А оригинал MCK вообще нельзя было использовать для Lazarus.
1010
1111### Требования
1212
1313- Free Pascal compiler 2.2.0 или позже для Win32.
1414- arm-wince cross compiler 2.2.0 или позже для Win32 (for [[WinCE port|WinCE]] development).
1515- Lazarus 0.9.26 или позже для Win32.
1616
1717### Поддерживаемые платформы:
1818
1919- Все 32-битные Windows: от Windows 95 до Windows 7.
2020- [[WinCE port|Windows CE]] для PocketPC и смартфонов.
2121
2222## Загрузка
2323
2424Последний релиз KOL-CE можно скачать [здесь](http://sourceforge.net/project/showfiles.php?group_id=188451).
2525
2626Также вы можете получить свежие исходники KOL-CE из [SVN](https://kol-ce.svn.sourceforge.net/svnroot/kol-ce/trunk).
2727
2828## Установка
2929
3030------------------------------------------------------------------------
3131
3232**Важно:** После KOL-CE 2.80.2 определение `DisableFakeMethods` больше не требуется.
3333
3434Если раньше вы использовали KOL-CE 2.80.1 или ранее, вам надо пересобрать Lazarus **без** определения `DisableFakeMethods` перед установкой пакета MCK. Иначе **обработчики событий не будут работать**!
3535
3636Сделаем это:
3737
38381. Запустить Lazarus.
39392. Выбрать пункт **Tools \> Configure "Build Lazarus"...** (**Сервис \> Параметры сборки Lazarus...**).
40403. Выбрать **Clean Up + Build all**(Очистить всё + собрать всё) на странице **Quick Build Options** (простые параметры сборки).
41414. Открыть страницу **Advanced Build Options** (Расширенные параметры сборки) и **remove** `-dDisableFakeMethods` из поля ввода **Options** .
42425. Кликнуть по кнопке **Build** для пересборки Lazarus.
4343
4444------------------------------------------------------------------------
4545
4646![](/wiki-images/2/2e/MirrorKOLPackage.png)
4747
48481. Загрузите KOL-CE и поместите куда-нибудь рядом с Лазарусом.
49492. Запустите Lazarus и выберите пункты меню **Components \> Load package file**. Укажите папку **MCK** и выберите файл **`MirrorKOLPackage.lpk`**.
50503. Появится окно содержимого пакета. Нажмите кнопку **Install**.
51514. Лазарус скомпилирует пакет MCK перезапустится.
52525. После этого на палитре компонентов появится вкладка KOL.
5353
5454![](/wiki-images/d/d1/KOLComponents.png)
5555
5656СОВЕТ: Если вы видите не все компоненты KOL на палитре компонентов, увеличьте размер окна по вертикали. Появится вторая строка с недостающими копонентами (см. скриншот).
5757
5858Обновить пакет MCK очень легко. Просто перезапишите обновленные KOL-CE исходники поверх (вместо) старых, откройте пакет MCK через Lazarus и нажмите **Install**, пакет перекомпилится, и будет вам счастье!
5959
6060## Особенности использования MCK
6161
6262### Создание нового проекта
6363
6464![](/wiki-images/0/04/MCKForm.png)
6565
66661. Запустите Lazarus, выберите **File \> New...** (**Файл \> Создать ...**).
67672. Выберите **KOL Application** в секции **Project** и нежмите **OK**.
68683. Будет создан новый KOL проект.
69694. Сохраните проект под новым именем.
70705. Продукт готов к использованию, срок годности ограничен вашей фантазией =). Можете развлекаться!
7171
7272### Добавление формы
7373
74741. Выберите **File \> New...** (**Файл \> Создать ...**).
75752. Выберите **KOL Form**(иногда просто **Form**) в секции **File** (**Модуль**) и нажмите **OK**.
76763. Сохраните модуль с формой под новым именем.
7777
7878### Особенности написания кода
7979
8080Не используйте элементы из RTL/FCL/LCL, особенно из SysUtils, Classes, Forms и подобных им. Всё необходимое придётся искать в модулях KOL, Windows, Messages. А может быть, вы напишете что-то сами (или скопируете из других исходников). Если вы пишете в зеркальном проекте (mirror project) - Обычно поместите его в обработчики событий. Вы также можете добавлять любой код где пожелаете, но избегайте изменения первой секции объявления класса вашей зеркальной LCL формы. И не изменяйте автоматически созданные inc-файлы. Всегда помните, что код, который вы пишете в зеркальном проекте, должен быть принят и LCL, и KOL. LCL - на этапе компиляции зеркального проекта (и это необходимо, потому что иначе конвертация зеркального проекта в отражённый KOL проект будет невозможна). А KOL - на этапе компиляции написанного кода в KOL.
8181
8282### Важно
8383
8484Для решения конфликта между словами `LCL.Self` и `KOL.@Self`, которые интерпретируются по-разному в KOL и LCL, добавлен специальный компонент - `Form`. В LCL, свойство `Form` типа компонент `TKOLForm` "возвращает" `Self`, То есть форму. А в KOL, `Form: PControl` - это поле-объект, содержащий сам объект-форму. Поэтому, вместо
8585
86-`MainForm.caption := 'Hello!', где MainForm - ваша форма, пишите`\
87-`Form.Caption := 'Hello!'; `
86+``` pascal
87+MainForm.caption := 'Hello!', где MainForm - ваша форма, пишите
88+Form.Caption := 'Hello!';
89+```
8890
8991(Старое обращение Caption := 'Hello!'; компилируется нормально при преобразовании зеркального проекта в KOL, однако в самом(без MCK) KOL это будет неправильно). Но через `Form` можно обращаться только к свойствам формы - не к дочерним компонентам. Вам доступны дочерние компоненты и обработчики событий черес саму форму. например:
9092
91-`Button1.Caption := 'OK';`\
92-`Button1Click(Form);`
93+``` pascal
94+Button1.Caption := 'OK';
95+Button1Click(Form);
96+```
9397
9498### Run-time создание форм
9599
96100Можно создать несколько экземпляров одной и той же формы во время выполнения программы. Притом можно сделать не АвтоСоздаваемую форму, а создавать её программно, когда это необходимо. Используйте глобальную функцию `NewForm1` (замените Form1 на имя вашей зеркальной формы) например:
97101
98-`NewForm1( TempForm1, Applet );`
102+```text
103+NewForm1( TempForm1, Applet );
104+```
99105
100106Для таких созданных во время выполнения форм справедливо то же правило, что и дляавтосозданных - обращайтесь к сваойствам формы через свойство-объект `Form`
101107
102108## WinCE
103109
104110#### Установка
105111
106112![arm-wince target](/wiki-images/5/5e/Arm-wince-target.png) Для начала надо установить кросскомпилятор arm-wince for Win32 для компиляции исполняемых файлов WinCE. Можно скачать [здесь](http://www.freepascal.org/download.var). Нужно скачать lazarus с кросскомпилятором в комплекте и затем установить поверх уже установленного Lazarus'a, то есть в ту же папку.
107113
108114Чтобы компилировать под arm-wince откройте параметры компилятора для вашего проекта, выбрав пункт меню **Project \> Compiler options...**. Откройте вкладку **Code** (**Код**) и поменяйте операционную систему на WinCE, а целевое семейство процессоров на arm.
109115
110116На вкладке **Пути** поменяйте библиотеку виджетов LCL на WinCe.
111117
112118**ПРИМЕЧАНИЕ:** Вы можете получить следующие сообщения об ошибке во время компиляции вашего KOL-CE проекта для WinCE:
113119
114-`Compiling resource KOL-CE.rc`\
115-`arm-wince-windres.exe: no resources`\
116-`KOL.PAS(57901) Error: Error while linking`\
117-`KOL.PAS(57901) Fatal: There were 1 errors compiling module, stopping`
120+```text
121+Compiling resource KOL-CE.rc
122+arm-wince-windres.exe: no resources
123+KOL.PAS(57901) Error: Error while linking
124+KOL.PAS(57901) Fatal: There were 1 errors compiling module, stopping
125+```
118126
119127В таком случае вам нужно изменить переменную окружения **PATH** **Windows** и добавить путь к папке, где расположены файлы win32 FPC.\
120128Чтобы узнать, какой путь добавить, перейдите на**Окружение**\>**Параметры** в Lazarus и посмотреть путь к компилятору.\
121129**Перед изменением PATH закройте Lazarus**.\
122130====Редактирование переменной окружения **PATH**====
123131
124132##### в Windows XP
125133
1261341.Правой кнопкой мыши щелкните по значку "Мой компьютер" и выберите пункт меню "Свойства". 2.Перейдите на вкладку "Дополнительно". 3.Нажмите кнопку "Переменные среды". 4.Выберите в списке переменную path, нажмите **изменить** и через точку с запятой добавьте путь к папке.
127135
128136##### в Windows 7
129137
1301381.Нажмите пуск. 2.Нажмите правой кнопкой мыши по пункту **Компьютер**.Выберите пункт меню свойства. 3.Нажмите на **Дополнительные параметры системы** (список слева). 4.На вкладке **Дополнительно** нажмите кнопку **Переменные среды**. 5.Выберите в списке переменную path, нажмите **изменить** и через точку с запятой добавьте путь к папке.
131139
132140#### Hints and notes
133141
134142- Чтобы сделать полноэкранный вид, не пытайтесь изменить позицию окна и его размер. Если попытаться это сделать, форма будет выглядеть как диалог с заголовком и кнопкой закрыть. В MCK установите **defaultSize** и **defaultPosition** of TKOLForm в True для достижения цели.
135143
136144#### Известные проблемы
137145
138146- Следующие компоненты не поддерживаются: RichEdit.
139147- Прозрачность и двойная буферизация также не поддерживаются.
140148- Работают значения свойства gradient panel styles только gsVertical и gsHorizontal.
141149- Горизонтальное выравнивание текста не работет в однострочном компоненте edit. Используйте memo если вам оно нужно.
142150- Vertical text alignment does not work for panel and label.
143151
144152## Документация
145153
146154- Посетите официальный сайт KOL&MCK для получения документации и информации: <http://kolmck.ru>
147155- Прочитайте документацию MCK в файле **KOLmirrorReadme.txt**, лежащем в папке MCK.
148156
149157## Приложения, использующие KOL-CE
150158
151159- [Password Manager XP Mobile](http://www.cp-lab.com/windows-mobile.html)
152160- [ChARMeD disassembler](http://blog.carolos.za.net/2007/05/charmed-for-pocket-pc-beta-030.html)
153161- [WMWifiRouter](http://www.jongma.org/WMWifiRouter/)
154162
155163## См. также
156164
157165- [Официальный вебсайт KOL&MCK](http://f0460945.xsph.ru/rindex.htm)
158166- Страничку KOL-CE на SourceForge <http://sourceforge.net/projects/kol-ce/>
159167- [Портирование на WinCE c помощью Free Pascal](http://wiki.lazarus.freepascal.org/WinCE_port/ru)
160168- [[Windows CE Interface]]
161169- [[Windows CE Development Notes]]
162170
163171## Contacts
164172
165173Report bugs, submit patches and ask questions at project's page at SourceForge: <http://sourceforge.net/projects/kol-ce/>
166174
167175---
168176*From the Free Pascal wiki, page "KOL-CE/ru", as it stood on 2021-04-29 after a change by Seenkao, 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).*
169177Category: Components/ru
170178Category: Russian
171179Category: WinCE/ru

Back to history