Sign in Join
Wiki copytemporary

KOL-CE/ru: what changed

Revision 1 to 2. 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
46-<figure>
47-<img src="MirrorKOLPackage.png" title="MCK package" />
48-<figcaption>MCK package</figcaption>
49-</figure>
46+![](/wiki-images/2/2e/MirrorKOLPackage.png)
5047
51481. Загрузите KOL-CE и поместите куда-нибудь рядом с Лазарусом.
52492. Запустите Lazarus и выберите пункты меню **Components \> Load package file**. Укажите папку **MCK** и выберите файл **`MirrorKOLPackage.lpk`**.
53503. Появится окно содержимого пакета. Нажмите кнопку **Install**.
54514. Лазарус скомпилирует пакет MCK перезапустится.
55525. После этого на палитре компонентов появится вкладка KOL.
5653
57-<figure>
58-<img src="KOLComponents.png" title="|KOL components palette" />
59-<figcaption>|KOL components palette</figcaption>
60-</figure>
54+![](/wiki-images/d/d1/KOLComponents.png)
6155
6256СОВЕТ: Если вы видите не все компоненты KOL на палитре компонентов, увеличьте размер окна по вертикали. Появится вторая строка с недостающими копонентами (см. скриншот).
6357
6458Обновить пакет MCK очень легко. Просто перезапишите обновленные KOL-CE исходники поверх (вместо) старых, откройте пакет MCK через Lazarus и нажмите **Install**, пакет перекомпилится, и будет вам счастье!
6559
6660## Особенности использования MCK
6761
6862### Создание нового проекта
6963
70-<figure>
71-<img src="MCKForm.png" title="MCK form" />
72-<figcaption>MCK form</figcaption>
73-</figure>
64+![](/wiki-images/0/04/MCKForm.png)
7465
75661. Запустите Lazarus, выберите **File \> New...** (**Файл \> Создать ...**).
76672. Выберите **KOL Application** в секции **Project** и нежмите **OK**.
77683. Будет создан новый KOL проект.
78694. Сохраните проект под новым именем.
79705. Продукт готов к использованию, срок годности ограничен вашей фантазией =). Можете развлекаться!
8071
8172### Добавление формы
8273
83741. Выберите **File \> New...** (**Файл \> Создать ...**).
84752. Выберите **KOL Form**(иногда просто **Form**) в секции **File** (**Модуль**) и нажмите **OK**.
85763. Сохраните модуль с формой под новым именем.
8677
8778### Особенности написания кода
8879
8980Не используйте элементы из RTL/FCL/LCL, особенно из SysUtils, Classes, Forms и подобных им. Всё необходимое придётся искать в модулях KOL, Windows, Messages. А может быть, вы напишете что-то сами (или скопируете из других исходников). Если вы пишете в зеркальном проекте (mirror project) - Обычно поместите его в обработчики событий. Вы также можете добавлять любой код где пожелаете, но избегайте изменения первой секции объявления класса вашей зеркальной LCL формы. И не изменяйте автоматически созданные inc-файлы. Всегда помните, что код, который вы пишете в зеркальном проекте, должен быть принят и LCL, и KOL. LCL - на этапе компиляции зеркального проекта (и это необходимо, потому что иначе конвертация зеркального проекта в отражённый KOL проект будет невозможна). А KOL - на этапе компиляции написанного кода в KOL.
9081
9182### Важно
9283
9384Для решения конфликта между словами `LCL.Self` и `KOL.@Self`, которые интерпретируются по-разному в KOL и LCL, добавлен специальный компонент - `Form`. В LCL, свойство `Form` типа компонент `TKOLForm` "возвращает" `Self`, То есть форму. А в KOL, `Form: PControl` - это поле-объект, содержащий сам объект-форму. Поэтому, вместо
9485
9586`MainForm.caption := 'Hello!', где MainForm - ваша форма, пишите`\
9687`Form.Caption := 'Hello!'; `
9788
9889(Старое обращение Caption := 'Hello!'; компилируется нормально при преобразовании зеркального проекта в KOL, однако в самом(без MCK) KOL это будет неправильно). Но через `Form` можно обращаться только к свойствам формы - не к дочерним компонентам. Вам доступны дочерние компоненты и обработчики событий черес саму форму. например:
9990
10091`Button1.Caption := 'OK';`\
10192`Button1Click(Form);`
10293
10394### Run-time создание форм
10495
10596Можно создать несколько экземпляров одной и той же формы во время выполнения программы. Притом можно сделать не АвтоСоздаваемую форму, а создавать её программно, когда это необходимо. Используйте глобальную функцию `NewForm1` (замените Form1 на имя вашей зеркальной формы) например:
10697
10798`NewForm1( TempForm1, Applet );`
10899
109100Для таких созданных во время выполнения форм справедливо то же правило, что и дляавтосозданных - обращайтесь к сваойствам формы через свойство-объект `Form`
110101
111102## WinCE
112103
113104#### Установка
114105
115106![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, то есть в ту же папку.
116107
117108Чтобы компилировать под arm-wince откройте параметры компилятора для вашего проекта, выбрав пункт меню **Project \> Compiler options...**. Откройте вкладку **Code** (**Код**) и поменяйте операционную систему на WinCE, а целевое семейство процессоров на arm.
118109
119110На вкладке **Пути** поменяйте библиотеку виджетов LCL на WinCe.
120111
121112**ПРИМЕЧАНИЕ:** Вы можете получить следующие сообщения об ошибке во время компиляции вашего KOL-CE проекта для WinCE:
122113
123114`Compiling resource KOL-CE.rc`\
124115`arm-wince-windres.exe: no resources`\
125116`KOL.PAS(57901) Error: Error while linking`\
126117`KOL.PAS(57901) Fatal: There were 1 errors compiling module, stopping`
127118
128119В таком случае вам нужно изменить переменную окружения **PATH** **Windows** и добавить путь к папке, где расположены файлы win32 FPC.\
129120Чтобы узнать, какой путь добавить, перейдите на**Окружение**\>**Параметры** в Lazarus и посмотреть путь к компилятору.\
130121**Перед изменением PATH закройте Lazarus**.\
131122====Редактирование переменной окружения **PATH**====
132123
133124##### в Windows XP
134125
1351261.Правой кнопкой мыши щелкните по значку "Мой компьютер" и выберите пункт меню "Свойства". 2.Перейдите на вкладку "Дополнительно". 3.Нажмите кнопку "Переменные среды". 4.Выберите в списке переменную path, нажмите **изменить** и через точку с запятой добавьте путь к папке.
136127
137128##### в Windows 7
138129
1391301.Нажмите пуск. 2.Нажмите правой кнопкой мыши по пункту **Компьютер**.Выберите пункт меню свойства. 3.Нажмите на **Дополнительные параметры системы** (список слева). 4.На вкладке **Дополнительно** нажмите кнопку **Переменные среды**. 5.Выберите в списке переменную path, нажмите **изменить** и через точку с запятой добавьте путь к папке.
140131
141132#### Hints and notes
142133
143134- Чтобы сделать полноэкранный вид, не пытайтесь изменить позицию окна и его размер. Если попытаться это сделать, форма будет выглядеть как диалог с заголовком и кнопкой закрыть. В MCK установите **defaultSize** и **defaultPosition** of TKOLForm в True для достижения цели.
144135
145136#### Известные проблемы
146137
147138- Следующие компоненты не поддерживаются: RichEdit.
148139- Прозрачность и двойная буферизация также не поддерживаются.
149140- Работают значения свойства gradient panel styles только gsVertical и gsHorizontal.
150141- Горизонтальное выравнивание текста не работет в однострочном компоненте edit. Используйте memo если вам оно нужно.
151142- Vertical text alignment does not work for panel and label.
152143
153144## Документация
154145
155146- Посетите официальный сайт KOL&MCK для получения документации и информации: <http://kolmck.ru>
156147- Прочитайте документацию MCK в файле **KOLmirrorReadme.txt**, лежащем в папке MCK.
157148
158149## Приложения, использующие KOL-CE
159150
160151- [Password Manager XP Mobile](http://www.cp-lab.com/windows-mobile.html)
161152- [ChARMeD disassembler](http://blog.carolos.za.net/2007/05/charmed-for-pocket-pc-beta-030.html)
162153- [WMWifiRouter](http://www.jongma.org/WMWifiRouter/)
163154
164155## См. также
165156
166157- [Официальный вебсайт KOL&MCK](http://f0460945.xsph.ru/rindex.htm)
167158- Страничку KOL-CE на SourceForge <http://sourceforge.net/projects/kol-ce/>
168159- [Портирование на WinCE c помощью Free Pascal](http://wiki.lazarus.freepascal.org/WinCE_port/ru)
169160- [[Windows CE Interface]]
170161- [[Windows CE Development Notes]]
171162
172163## Contacts
173164
174165Report bugs, submit patches and ask questions at project's page at SourceForge: <http://sourceforge.net/projects/kol-ce/>
175166
176167---
177168*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).*
178169Category: Components/ru
179170Category: Russian
180171Category: WinCE/ru

Back to history