KOL-CE/ru: what changed
Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.
Title: KOL-CE/ru
| Old | New | Line | |
|---|---|---|---|
| 1 | + | ## Введение | |
| 2 | + | ||
| 3 | + | KOL-CE - это [KOL&MCK](http://f0460945.xsph.ru/rindex.htm) от Владимира Кладова, портированная под Free Pascal/Lazarus. KOL-CE создана Юрием Сидоровым и распространяется под [wxWindows Library Licence](http://www.opensource.org/licenses/wxwindows.php). | |
| 4 | + | ||
| 5 | + | KOL-CE позволяет создавать очень компактные Win32/WinCE GUI приложения (начиная от ~40KB приложения с пустой формой). | |
| 6 | + | ||
| 7 | + | MCK это пакет, позволяющий проектировать приложения KOL-CE визуально, используя Lazarus IDE. | |
| 8 | + | ||
| 9 | + | Изначально KOL-CE планировался как KOL, портированный только для [[WinCE port|WinCE]]. Но потом было решено оставить функции Win32 и доделать его работу с FPC. Оригинальный KOL предназначалась для Delphi и работает во Free Pascal с ошибками. А оригинал MCK вообще нельзя было использовать для Lazarus. | |
| 10 | + | ||
| 11 | + | ### Требования | |
| 12 | + | ||
| 13 | + | - Free Pascal compiler 2.2.0 или позже для Win32. | |
| 14 | + | - arm-wince cross compiler 2.2.0 или позже для Win32 (for [[WinCE port|WinCE]] development). | |
| 15 | + | - Lazarus 0.9.26 или позже для Win32. | |
| 16 | + | ||
| 17 | + | ### Поддерживаемые платформы: | |
| 18 | + | ||
| 19 | + | - Все 32-битные Windows: от Windows 95 до Windows 7. | |
| 20 | + | - [[WinCE port|Windows CE]] для PocketPC и смартфонов. | |
| 21 | + | ||
| 22 | + | ## Загрузка | |
| 23 | + | ||
| 24 | + | Последний релиз KOL-CE можно скачать [здесь](http://sourceforge.net/project/showfiles.php?group_id=188451). | |
| 25 | + | ||
| 26 | + | Также вы можете получить свежие исходники KOL-CE из [SVN](https://kol-ce.svn.sourceforge.net/svnroot/kol-ce/trunk). | |
| 27 | + | ||
| 28 | + | ## Установка | |
| 29 | + | ||
| 30 | + | ------------------------------------------------------------------------ | |
| 31 | + | ||
| 32 | + | **Важно:** После KOL-CE 2.80.2 определение `DisableFakeMethods` больше не требуется. | |
| 33 | + | ||
| 34 | + | Если раньше вы использовали KOL-CE 2.80.1 или ранее, вам надо пересобрать Lazarus **без** определения `DisableFakeMethods` перед установкой пакета MCK. Иначе **обработчики событий не будут работать**! | |
| 35 | + | ||
| 36 | + | Сделаем это: | |
| 37 | + | ||
| 38 | + | 1. Запустить Lazarus. | |
| 39 | + | 2. Выбрать пункт **Tools \> Configure "Build Lazarus"...** (**Сервис \> Параметры сборки Lazarus...**). | |
| 40 | + | 3. Выбрать **Clean Up + Build all**(Очистить всё + собрать всё) на странице **Quick Build Options** (простые параметры сборки). | |
| 41 | + | 4. Открыть страницу **Advanced Build Options** (Расширенные параметры сборки) и **remove** `-dDisableFakeMethods` из поля ввода **Options** . | |
| 42 | + | 5. Кликнуть по кнопке **Build** для пересборки Lazarus. | |
| 43 | + | ||
| 44 | + | ------------------------------------------------------------------------ | |
| 45 | + | ||
| 46 | + | <figure> | |
| 47 | + | <img src="MirrorKOLPackage.png" title="MCK package" /> | |
| 48 | + | <figcaption>MCK package</figcaption> | |
| 49 | + | </figure> | |
| 50 | + | ||
| 51 | + | 1. Загрузите KOL-CE и поместите куда-нибудь рядом с Лазарусом. | |
| 52 | + | 2. Запустите Lazarus и выберите пункты меню **Components \> Load package file**. Укажите папку **MCK** и выберите файл **`MirrorKOLPackage.lpk`**. | |
| 53 | + | 3. Появится окно содержимого пакета. Нажмите кнопку **Install**. | |
| 54 | + | 4. Лазарус скомпилирует пакет MCK перезапустится. | |
| 55 | + | 5. После этого на палитре компонентов появится вкладка KOL. | |
| 56 | + | ||
| 57 | + | <figure> | |
| 58 | + | <img src="KOLComponents.png" title="|KOL components palette" /> | |
| 59 | + | <figcaption>|KOL components palette</figcaption> | |
| 60 | + | </figure> | |
| 61 | + | ||
| 62 | + | СОВЕТ: Если вы видите не все компоненты KOL на палитре компонентов, увеличьте размер окна по вертикали. Появится вторая строка с недостающими копонентами (см. скриншот). | |
| 63 | + | ||
| 64 | + | Обновить пакет MCK очень легко. Просто перезапишите обновленные KOL-CE исходники поверх (вместо) старых, откройте пакет MCK через Lazarus и нажмите **Install**, пакет перекомпилится, и будет вам счастье! | |
| 65 | + | ||
| 66 | + | ## Особенности использования MCK | |
| 67 | + | ||
| 68 | + | ### Создание нового проекта | |
| 69 | + | ||
| 70 | + | <figure> | |
| 71 | + | <img src="MCKForm.png" title="MCK form" /> | |
| 72 | + | <figcaption>MCK form</figcaption> | |
| 73 | + | </figure> | |
| 74 | + | ||
| 75 | + | 1. Запустите Lazarus, выберите **File \> New...** (**Файл \> Создать ...**). | |
| 76 | + | 2. Выберите **KOL Application** в секции **Project** и нежмите **OK**. | |
| 77 | + | 3. Будет создан новый KOL проект. | |
| 78 | + | 4. Сохраните проект под новым именем. | |
| 79 | + | 5. Продукт готов к использованию, срок годности ограничен вашей фантазией =). Можете развлекаться! | |
| 80 | + | ||
| 81 | + | ### Добавление формы | |
| 82 | + | ||
| 83 | + | 1. Выберите **File \> New...** (**Файл \> Создать ...**). | |
| 84 | + | 2. Выберите **KOL Form**(иногда просто **Form**) в секции **File** (**Модуль**) и нажмите **OK**. | |
| 85 | + | 3. Сохраните модуль с формой под новым именем. | |
| 86 | + | ||
| 87 | + | ### Особенности написания кода | |
| 88 | + | ||
| 89 | + | Не используйте элементы из RTL/FCL/LCL, особенно из SysUtils, Classes, Forms и подобных им. Всё необходимое придётся искать в модулях KOL, Windows, Messages. А может быть, вы напишете что-то сами (или скопируете из других исходников). Если вы пишете в зеркальном проекте (mirror project) - Обычно поместите его в обработчики событий. Вы также можете добавлять любой код где пожелаете, но избегайте изменения первой секции объявления класса вашей зеркальной LCL формы. И не изменяйте автоматически созданные inc-файлы. Всегда помните, что код, который вы пишете в зеркальном проекте, должен быть принят и LCL, и KOL. LCL - на этапе компиляции зеркального проекта (и это необходимо, потому что иначе конвертация зеркального проекта в отражённый KOL проект будет невозможна). А KOL - на этапе компиляции написанного кода в KOL. | |
| 90 | + | ||
| 91 | + | ### Важно | |
| 92 | + | ||
| 93 | + | Для решения конфликта между словами `LCL.Self` и `KOL.@Self`, которые интерпретируются по-разному в KOL и LCL, добавлен специальный компонент - `Form`. В LCL, свойство `Form` типа компонент `TKOLForm` "возвращает" `Self`, То есть форму. А в KOL, `Form: PControl` - это поле-объект, содержащий сам объект-форму. Поэтому, вместо | |
| 94 | + | ||
| 95 | + | `MainForm.caption := 'Hello!', где MainForm - ваша форма, пишите`\ | |
| 96 | + | `Form.Caption := 'Hello!'; ` | |
| 97 | + | ||
| 98 | + | (Старое обращение Caption := 'Hello!'; компилируется нормально при преобразовании зеркального проекта в KOL, однако в самом(без MCK) KOL это будет неправильно). Но через `Form` можно обращаться только к свойствам формы - не к дочерним компонентам. Вам доступны дочерние компоненты и обработчики событий черес саму форму. например: | |
| 99 | + | ||
| 100 | + | `Button1.Caption := 'OK';`\ | |
| 101 | + | `Button1Click(Form);` | |
| 102 | + | ||
| 103 | + | ### Run-time создание форм | |
| 104 | + | ||
| 105 | + | Можно создать несколько экземпляров одной и той же формы во время выполнения программы. Притом можно сделать не АвтоСоздаваемую форму, а создавать её программно, когда это необходимо. Используйте глобальную функцию `NewForm1` (замените Form1 на имя вашей зеркальной формы) например: | |
| 106 | + | ||
| 107 | + | `NewForm1( TempForm1, Applet );` | |
| 108 | + | ||
| 109 | + | Для таких созданных во время выполнения форм справедливо то же правило, что и дляавтосозданных - обращайтесь к сваойствам формы через свойство-объект `Form` | |
| 110 | + | ||
| 111 | + | ## WinCE | |
| 112 | + | ||
| 113 | + | #### Установка | |
| 114 | + | ||
| 115 | + |  Для начала надо установить кросскомпилятор arm-wince for Win32 для компиляции исполняемых файлов WinCE. Можно скачать [здесь](http://www.freepascal.org/download.var). Нужно скачать lazarus с кросскомпилятором в комплекте и затем установить поверх уже установленного Lazarus'a, то есть в ту же папку. | |
| 116 | + | ||
| 117 | + | Чтобы компилировать под arm-wince откройте параметры компилятора для вашего проекта, выбрав пункт меню **Project \> Compiler options...**. Откройте вкладку **Code** (**Код**) и поменяйте операционную систему на WinCE, а целевое семейство процессоров на arm. | |
| 118 | + | ||
| 119 | + | На вкладке **Пути** поменяйте библиотеку виджетов LCL на WinCe. | |
| 120 | + | ||
| 121 | + | **ПРИМЕЧАНИЕ:** Вы можете получить следующие сообщения об ошибке во время компиляции вашего KOL-CE проекта для WinCE: | |
| 122 | + | ||
| 123 | + | `Compiling resource KOL-CE.rc`\ | |
| 124 | + | `arm-wince-windres.exe: no resources`\ | |
| 125 | + | `KOL.PAS(57901) Error: Error while linking`\ | |
| 126 | + | `KOL.PAS(57901) Fatal: There were 1 errors compiling module, stopping` | |
| 127 | + | ||
| 128 | + | В таком случае вам нужно изменить переменную окружения **PATH** **Windows** и добавить путь к папке, где расположены файлы win32 FPC.\ | |
| 129 | + | Чтобы узнать, какой путь добавить, перейдите на**Окружение**\>**Параметры** в Lazarus и посмотреть путь к компилятору.\ | |
| 130 | + | **Перед изменением PATH закройте Lazarus**.\ | |
| 131 | + | ====Редактирование переменной окружения **PATH**==== | |
| 132 | + | ||
| 133 | + | ##### в Windows XP | |
| 134 | + | ||
| 135 | + | 1.Правой кнопкой мыши щелкните по значку "Мой компьютер" и выберите пункт меню "Свойства". 2.Перейдите на вкладку "Дополнительно". 3.Нажмите кнопку "Переменные среды". 4.Выберите в списке переменную path, нажмите **изменить** и через точку с запятой добавьте путь к папке. | |
| 136 | + | ||
| 137 | + | ##### в Windows 7 | |
| 138 | + | ||
| 139 | + | 1.Нажмите пуск. 2.Нажмите правой кнопкой мыши по пункту **Компьютер**.Выберите пункт меню свойства. 3.Нажмите на **Дополнительные параметры системы** (список слева). 4.На вкладке **Дополнительно** нажмите кнопку **Переменные среды**. 5.Выберите в списке переменную path, нажмите **изменить** и через точку с запятой добавьте путь к папке. | |
| 140 | + | ||
| 141 | + | #### Hints and notes | |
| 142 | + | ||
| 143 | + | - Чтобы сделать полноэкранный вид, не пытайтесь изменить позицию окна и его размер. Если попытаться это сделать, форма будет выглядеть как диалог с заголовком и кнопкой закрыть. В MCK установите **defaultSize** и **defaultPosition** of TKOLForm в True для достижения цели. | |
| 144 | + | ||
| 145 | + | #### Известные проблемы | |
| 146 | + | ||
| 147 | + | - Следующие компоненты не поддерживаются: RichEdit. | |
| 148 | + | - Прозрачность и двойная буферизация также не поддерживаются. | |
| 149 | + | - Работают значения свойства gradient panel styles только gsVertical и gsHorizontal. | |
| 150 | + | - Горизонтальное выравнивание текста не работет в однострочном компоненте edit. Используйте memo если вам оно нужно. | |
| 151 | + | - Vertical text alignment does not work for panel and label. | |
| 152 | + | ||
| 153 | + | ## Документация | |
| 154 | + | ||
| 155 | + | - Посетите официальный сайт KOL&MCK для получения документации и информации: <http://kolmck.ru> | |
| 156 | + | - Прочитайте документацию MCK в файле **KOLmirrorReadme.txt**, лежащем в папке MCK. | |
| 157 | + | ||
| 158 | + | ## Приложения, использующие KOL-CE | |
| 159 | + | ||
| 160 | + | - [Password Manager XP Mobile](http://www.cp-lab.com/windows-mobile.html) | |
| 161 | + | - [ChARMeD disassembler](http://blog.carolos.za.net/2007/05/charmed-for-pocket-pc-beta-030.html) | |
| 162 | + | - [WMWifiRouter](http://www.jongma.org/WMWifiRouter/) | |
| 163 | + | ||
| 164 | + | ## См. также | |
| 165 | + | ||
| 166 | + | - [Официальный вебсайт KOL&MCK](http://f0460945.xsph.ru/rindex.htm) | |
| 167 | + | - Страничку KOL-CE на SourceForge <http://sourceforge.net/projects/kol-ce/> | |
| 168 | + | - [Портирование на WinCE c помощью Free Pascal](http://wiki.lazarus.freepascal.org/WinCE_port/ru) | |
| 169 | + | - [[Windows CE Interface]] | |
| 170 | + | - [[Windows CE Development Notes]] | |
| 171 | + | ||
| 172 | + | ## Contacts | |
| 173 | + | ||
| 174 | + | Report bugs, submit patches and ask questions at project's page at SourceForge: <http://sourceforge.net/projects/kol-ce/> | |
| 175 | + | ||
| 176 | + | --- | |
| 177 | + | *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).* | |
| 178 | + | Category: Components/ru | |
| 179 | + | Category: Russian | |
| 180 | + | Category: WinCE/ru |
