• Главная
  • Карта сайта
Не найдено

Програмування під Windows Mobile на Free Pascal

  1. публікації FreePascal 30.08.2007 Чиченін Олександр (S0vNarK0m) I. Вступ
  2. версії ОС
  3. Залізо
  4. II. Розробка програм під платформу ARM-WinCE на Free Pascal
  5. Інструментарій для тестування програми
  6. Середовище розробки
  7. III. Розробка віконних додатків для Windows Mobile в Lazarus.
  8. Програмування з використанням візуального проектування
  9. IV. Висновок
публікації FreePascal

30.08.2007
Чиченін Олександр (S0vNarK0m)

I. Вступ

Портативні комп'ютери стають все популярнішими, а застосовувані в них технології все більш досконалий. Та й ціна на такі пристрої помітно впала. Особливо цікавий факт появи таких пристроїв на ринку мобільного зв'язку. Наявність доступу в Інтернет робить можливим створення дуже широкого кола додатків, від telnet клієнта до повноцінних багатокористувацьких ігор.
Наступний розділ допоможе визначитися, для яких мобільних платформ можливо і для яких варто розробляти софт на FPC. У розділі багато інформації, яка не має прямого відношення до FPC, і багато моїх власних думок. Якщо Вас не цікавить технічна сторона питання і мої думки - сміливо переходите до розділу II, присвяченому безпосередньої розробки.

версії ОС

Windows Mobile

Для початку мені б хотілося пояснити, про що взагалі йде мова і усунути деяку плутанину в термінології.
Платформа Windows CE (WinCE або просто CE) - це операційна системна платформа для широкого кола носяться пристроїв, таких як КПК, комунікатори і смартфони.
На базі цієї платформи створені три основні різновиди операційної системи Windows Monbile:
Windows Mobile for PocketPC - для КПК.
Windows Mobile for PocketPC Phone Edition - для комунікаторів.
Windows Mobile for Smartphone - для смартфонів.
Крім цього, можна зустріти згадки про Windows CE for Handheld PC (ці пристрої були витіснені набагато більш потужними ноутбуками, тому загострювати увагу на них я не буду).

Плутанина з версіями Windows Mobile

На сайті Microsoft в розділі для розробників дуже часто терміни Windows Mobile 6 і Embedded WinCE 6.0 зустрічаються не тільки в рамках одного розділу, але і в рамках однієї статті. Між двома цими назвами встановлено багато перехресних посилань і, на перший погляд, дійсно здається, що Windows Mobile 6 побудована на базі WinCE 6.0. Ефект посилюється і тим, що в попередній версії ОС індекси ядра і системи збігалися. Природно, що ця інформація була помилково трактована багатьма людьми, і в документації до порту FPC для WinCE міститься дана помилка, яка, сподіваюся, незабаром буде виправлена.

Факти такі:
На даний момент (літо 2007 року), останньою версією ядра дейтсвітельно є Embedded WinCE 6.0 (Yamazaki), на його базі створюється Windows Mobile 7 (Photon) - версія, починаючи з якої поділу на смартфони і комунікатори більше не буде.
Хоча Windows Mobile 6 і називають часом Windows Mobile Vista, насправді схожість у цій системи зі справжньою Vista лише зовнішнє, так як вона базується на оновленому ядрі п'ятої версії - CE 5.2. Якщо проводити аналогію з десктопними системами, то Windows Mobile 6 несе на собі приблизно ті ж маркетингові функції, що і XP свого часу - залучити користувачів красивим, інтерфейсом і новими інформаційними сервісами. Крім того, навіть назви версій ОС стали подібні назвами версій Windows Vista.
Windows Mobile for Smartphone = Windows Mobile 6 Standard
Windows Mobile for Pocket PC Phone Edition = Windows Mobile 6 Professional
Windows Mobile for Pocket PC = Windows Mobile 6 Classic
Платформа Embedded Windows CE 6.0 досить сильно відрізняється від 5.0, але система на цій платформі поки не випущена, тому обговорювати її не будемо.

А як же Symbian, Embedded Linux і інші системи?

Так як темою даної статті є Windows Mobile, я не буду довго зупинятися на цих системах, але дещо сказати потрібно.
Останньою версією Symbian OS є v9.5, анонсована в березні 2007 року. Системою Symbian в основному оснащуються смартфони. На офіційному сайті наводиться, таблиця, в якій говориться, що 71.7% ринку займає Symbian, 14.3% Embedded Linux і лише 6.9% у Microsoft.
Але не все насправді так гладко. Один великий російський сервіс запропонував мені серед 73 смартфонів і комунікаторів 40 пристроїв, з різними версіями Windows Mobile, 32 пристрої з Symbian, і один пристрій під управлінням Mizi Linux 2.5 (тому на Linux та інших системах більше зупинятися не буду).
Основною проблемою Symbian є наявність чотирьох основних гілок розвитку, причому цей поділ відбувся вже досить давно. В результаті цього існують різні версії SDK, та ще й випущені різними виробниками. Портуванням такого обсягу заголовних файлів на Free Pascal поки не займалися. Хоча ніхто не заважає створити і порт FPC під Symbian з процесором ARM.

На чому ж зупинитися?

Зараз більшість пристроїв (маються на увазі пристрої на платформі Windows CE) оснащено Windows Mobile 5 (на базі CE 5.0). Крім того, Windows Mobile 6 природно дуже добре сумісна з попередницею (платформа то майже та сама). Тому орієнтуватися при розробці, на мій погляд, слід саме на платформу CE 5.0. Хоча зустрічаються і пристрої з Windows Mobile 2003 (SE), і, якщо є можливість, не погано б забезпечити сумісність і з цією системою.

Залізо

Тепер поговоримо про обладнання, з яким доведеться працювати.
Це питання насправді досить складний: ринок портативних пристроїв розвивається дуже бурхливо. Кількість виробників і пристроїв страхітливо велика і постійно зростає. Часом виробники створюють і собі і іншим проблеми, наприклад змінюючи індекси вібродзвоника і індикаторів.
Основною ж проблемою для розробника на FPC є те, що ядро ​​Windows CE одночасно підтримує процесори з різною мікроархітектури: x86, ARM, MIPS, SH а тепер і Xscale.
Архітектура x86 на сучасних мобільних пристроях (на ядрі WinCE) мені не зустрічалася і інтересу особливого не представляє, хоча RTL і FCL збираються і під платформу WinCE.
З MIPS справа йде гірше: на даний момент існують модулі компілятора, але RTL, а значить і все інше, поки не перенести. Правда пристрої з цим процесором і Windows Mobile зустрічаються все рідше.
SH поки не підтримується FPC взагалі. Однак на сучасному ринку, принаймні російському, даний процесор не розповсюджений.
А ось ARM - підтримується FPC добре, і саме про нього далі піде мова. Благо пристроїв, що використовують цей процесор дуже багато, і розробляти що-небудь для них на FPC - не порожня трата часу.

Зрозуміло, в зв'язку з просторістю версій ARM, поки далеко не всі можливості нових архітектур використовуються FPC в повній мірі. Сказати, яку старшу версію мікроядра ARM підтримує FPC на даний момент, я не беруся - файли компілятора, в основному, датовані 2002 і 2003 роками. У файлах компілятора згадок про процесорах старше ARMv5 я не виявив. Проте цілком імовірно, що на сьогоднішній день були додані інструкції і з сучасних архітектур ... але це тема вже іншої статті. На захист компілятора, зауважу тільки, що в SDK Windows Mobile 6 папка з заголовками API і раніше називається Armv4i.
Не можна не згадати потужну архітектуру Intel Xscale.
Все більше пристроїв на ринку використовують цей процесор і, судячи з усього, поступово витісняють пристрої з ARM. Поки даний процесор не згадується в документації до Free Pascal, проте конструктори Xscale зробили програмістам подарунок: його мікроархітектура використовує програмну модель ARMv5 TE. В результаті цього Xscale назад сумісний з ARM, і розробляти софт для нього можна і потрібно на Free Pascal вже зараз. Ніяких додаткових налаштувань для цього робити не потрібно.
Зверніть увагу, часто в описах вказується назва Intel PXA - це теж Xscale.

II. Розробка програм під платформу ARM-WinCE на Free Pascal

Інструментарій для збірки додатку

Зауважу, що підтримку даної платформи в компілятор додав Юрій Сидоров, частина заголовків до WinAPI додав Oliver (Oro06), частина додав я, а частина додасть ще хтось, може навіть Ви.
Розробляти програму для Windows найзручніше саме в Windows, тому подальше опис стосується розробки саме в цій системі.
Отже, щоб розробляти софт для Windows Mobile нам будуть потрібні наступні інструменти:
Зверніть увагу, що, наприклад, замість запису виду:
<Шлях до компілятору> bin \ i386-win32 \.
у Вашому випадку може бути:
c: \ pp \ bin \ i386-win32 \.

А) У разі якщо хочеться мати зручний і легко оновлюваний компілятор (рекомендований і робочий варіант):

1. Компілятор FPC 2.1.x або новіший, у мене, наприклад, прекрасно працює 2.3.1 зібраний прямо з SVN. Якщо SVN не використовується, то останню версію початкових кодів можна знайти на http://www.freepascal.org/develop.html
Після установки компілятора необхідно перевірити, що в змінній оточення PATH прописаний шлях:
<Шлях до компілятору> bin \ i386-win32 \;
Причому, він повинен там бути раніше, ніж шляху до решти FPC, якщо їх в системі декілька. Крім того, якщо в системі встановлено, наприклад, MinGW, то, якщо, в PATH шлях до нього прописаний раніше, ніж до FPC, то буде використаний не ld з FPC, а ld з MinGW і нічого зібрати не вдасться.
Поправити PATH в Windows XP можна тут:
Мій комп'ютер, Властивості, вкладка Додатково, Змінні середовища, Системні змінні.
Перевірити настройки, та й взагалі виконувати збірку компілятора або його частин зручно через FAR, або будь-який файл-менеджер з підтримкою командного рядка.

2. Пакет утиліт для крос-компіляції. У нього входять ld, as, ar, strip і т.д. Можна ці утиліти зібрати і потім, але особисто я користуюся вже готовим набором, узятим ось тут: ftp://ftp.freepascal.org/pub/fpc/contrib/cross/arm-wince-binutils.zip
Вміст архіву потрібно розпакувати в директорію з компілятором, наприклад:
<Шлях до компілятору> bin \ i386-win32 \.

3. Крос-компілятор для arm. Його потрібно зібрати самостійно, але спочатку зберемо звичайний компілятор і встановимо його. Для цього переходимо в кореневу директорію дистрибутива з вихідними кодами, або SVN репозиторію, і, якщо до цього, вже проводилася збірка, виконуємо: make clean.
Вихідні тексти чисті, і можна збирати компілятор для i386-win32. Для цього, не довго думаючи, виконуємо: make all і, тепер уже думаючи довго, чекаємо результатів. Якщо все нормально, то останній рядок в балці буде:
echo Build> build-stamp.i386-win32.
В результаті ми отримуємо: компілятор ppc386.exe в папці <шлях до ісходникам> compiler \, утиліти для нього, в папці <шлях до ісходникам> compiler \ utils \, відкомпілювалися модулі RTL в папці <шлях до ісходникам> rtl \ units \ i386 -win32 \, відкомпілювалися модулі FCL в папці <шлях до ісходникам> packages \ і різних субдіректоріі.
Необхідно встановити компілятор, для цього в кореневій директорії початкових кодів або сховища SVN виконаємо: make install. Компілятор буде встановлений в директорію pp \, що знаходиться в корені диска, на якому лежали вихідні. Однак якщо директорія була не порожня, то інсталяція може завершитися з помилкою, тому спочатку видалимо з директорії <Ваш диск> pp \ все зайві папки, крім папки bin, якщо в ній знаходиться основний компілятор.
Після завершення копіювання всіх файлів потрібно знову поправити PATH, якщо раніше компілятор знаходився в іншому місці.
Настала черга крос-компілятора, чи монтажу майже повторюють дії при складанні звичайного компілятора. Спочатку: make clean,
а потім: make all CPU_TARGET = arm OS_TARGET = wince. Знову довго думаємо, і чекаємо:
echo Build> build-stamp.arm-wince.

Якщо помилок немає, і лог на цьому повідомленні закінчиться - значить крос-компілятор, RTL і FCL успішно зібрані. Установка проводиться виконанням:
make crossinstall CPU_TARGET = arm OS_TARGET = wince, або
make install PP = ppcrossarm TARGET = arm-wince.

Після чого сам крос-компілятор буде розміщений в тій же директорії що і основний, а відкомпілювалися модулі в директорії
<Ваш диск> pp \ units \ arm-wince \.
Називатися крос-компілятор буде ppcrossarm.exe.
Якщо в майбутньому буде потрібно окремо зібрати встановити RTL, FCL, або будь-який інший пакет, то можна перейти в потрібну директорію дистрибутива початкових кодів або SVN і виконати наступні кроки:

make clean, для очищення модулів звичайного компілятора.
make clean PP = ppcrossarm TARGET = arm-wince, для очищення модулів крос-компілятора.
make all, для зборки модулів звичайного компілятора.
make all PP = ppcrossarm TARGET = arm-wince, для зборки модулів крос-компілятора.
make install, для установки модулів звичайного компілятора.
make install PP = ppcrossarm TARGET = arm-wince, для установки модулів крос-компілятора.
Звичайно, в будь-який момент файли Makefile і Makefile.fpc можуть бути змінені, тому, в разі проблем можна їх відкрити і почитати. Завжди можна знайти якісь параметри підтримуються і що роблять.

Б) Якщо у Вас встановлений Lazarus, і не хочеться завантажувати вихідні компілятора:

Раніше існувало готове додаток, яке встановлюється поверх робочої версії Lazarus.
Воно розташовувалося за адресами:
ftp://ftp.hu.freepascal.org/pub/lazarus/cross/ ,
http://michael-ep3.physik.uni-halle.de/Lazarus/cross/.
Але, мабуть факт того, що компілятор, що поставляється в комплекті, застарів, ці автоматичні установники були видалені. Однак я вирішив привести тут дані посилання, тому що можливо через деякий час з'являться збірки з новим компілятором. Якщо це станеться - врахуйте, що версії використовуваного звичайного компілятора, і крос-компілятора з доповнення повинні збігатися.
Хоча я в будь-якому випадку рекомендую скористатися першим варіантом і зібрати компілятор самостійно, так як в разі виникнення проблем буде набагато простіше їх виправити.

В незалежності від варіанту:

Зверніть увагу, що в файлі <Ваш диск> pp \ bin \ i386-win32 \ fpc.cfg повинні бути рядки:

# Binutils prefix for cross compiling
#IFDEF FPC_CROSSCOMPILING
-XP $ FPCTARGET-
#ENDIF

Якщо їх там немає - додайте вручну.

Інструментарій для тестування програми

Зрозуміло, будь-яку програму необхідно налагоджувати, але налагодження в Free Pascal залишається поки питанням скоріше теоретичним, ніж практичним, тому про це поговоримо трохи пізніше, а спочатку я опишу кроки, які необхідно здійснити перед початком розробки програми:

Підготовка до тестування

Якщо Ви стали щасливим володарем пристрої під управлінням Windows Mobile, недавно, то напевно вже обзавелися диспетчером задач, щоб в будь-який час можна було завершити збою програму. Якщо немає - скоріше обзаведіться, без цього тестування перетвориться в сущу муку, так як доведеться кожного разу перезавантажувати пристрій, а це процес зовсім не швидкий. Обов'язково знайдіть зручний спосіб синхронізації з ПК через Active Sync.
Якщо пристрої під рукою не виявилося або хочеться протестувати програму під іншою системою, то можна скористатися емулятором.
Сам емулятор можна скачати з сайту Microsoft за адресою:
http://www.microsoft.com/downloads/details.aspx?familyid=C62D54A5-183A-4A1E-A7E2-CC500ED1F19A&displaylang=en він називається V1Emulator.zip (867 Кб).
На цій же сторінці можна скачати образ Windows Mobile 5.
Крім цього в даний момент ведеться робота над другою версією, і бету можна скачати від суду: http://www.microsoft.com/downloads/details.aspx?familyid=13F5DE85-30CD-4506-9C5B-A2068FA1EE9E&displaylang=en , Називається CTP_Setup_NoNetFX.msi (1.1 Мб).
Однак завантажити в нього будь-якої образ системи мені на момент написання статті не вдалося. Самі образу займають досить багато. Локалізована на російську мову Windows Mobile 6 є тут:
http://www.microsoft.com/downloads/details.aspx?FamilyID=38c46aa8-1dd7-426f-a913-4f370a65a582&DisplayLang=en .
Крім цього, якщо на емуляторі планується тестувати мережеві додатки, необхідно завантажити
Microsoft Virtual PC 2007, в комплекті з яким встановиться необхідний мережевий драйвер: http://www.microsoft.com/downloads/details.aspx?FamilyID=04d26402-3199-48a3-afa2-2dc0b40a73b6&DisplayLang=en , Правда зауважу, що тестування цих програм потрібне і в реальних умовах.
Взагалі бажано завантажити SDK від Microsoft, емулятор і способу будуть додаватися в комплекті, крім того, там багато прикладів і хороша документація. Зауважу, що якщо з'являться проблеми при установці - можна скористатися утилітами, подібними MsiEx, для вилучення вмісту з дистрибутива.

налагодження

В даний момент Free Pascal використовує для налагодження GDB. Існує спеціальна збірка GDB саме для налагодження через ActiveSync. Завантажити її можна за цим посиланням: ftp://ftp.freepascal.org/pub/fpc/contrib/cross/gdb-6.4-win32-arm-wince.zip .
В архіві три файли:
readme.txt - інструкція з використання.
gdb.exe - сам відладчик, його зручно скопіювати в одну папку з компілятором.
arm-wince-pe-stub.exe - клієнтська частина, яка при налагодженні буде автоматично скопійована в папку gdb, в кореневій директорії смартфона, разом з отлаживаемой програмою.
Вміст архіву, за винятком readme.txt, рекомендую скопіювати в директорію <Ваш диск> pp \ bin \ i386-win32 \.

Середовище розробки

Компілятор зібраний, вже зараз можна скомпілювати програму під arm-wince і запустити на емуляторі, але, зрозуміло, для серйозного проекту одного компілятора і командного рядка замало.
Розглянемо два основні інструменти, напевно вже Вам знайомі:

Free Pascal IDE 1.0.10, яка встановилася автоматично разом з компілятором в папку <Ваш диск> pp \ bin \ i386-win32 \.
При спробі збереження нового проекту, дана середовище розробки видала Runtime Error, але проект зберегла, після чого закрилася. При другому запуску вона дійсно показала збережений проект і, після вибору платформи, успішно його зібрала. А ось платформи arm-wince дана середу, судячи з усього, не знає, тому відкомпілювати нічого не вийшло. Можна звичайно спробувати поміняти настройки в файлі fpc.cfg, але я не став витрачати на це час, і Вам витрачати не раджу.

Lazarus 0.9.23, хоча зрозуміло повинні будуть підійти і більш пізні версії. Але версії, молодше 0.9.17, швидше за все не підійдуть.
Отже, Lazarus. Поступово ця середовище розробки стає потужнішим і більш стабільною, і її використання перестало приносити постійні проблеми. Хоча щоденні автоматичні збірки і містять компілятор (на даний момент FPC 2.1.5), я все ж вважаю за краще використовувати зовнішній. А якщо збирати Lazarus з SVN або з архіву, то без зовнішнього компілятора зовсім не обійтися. Налаштувати Lazarus на роботу з зовнішнім компілятором досить просто, для цього в меню Оточення, Налаштування оточення вказуємо необхідний нам компілятор. У нашому випадку:
<Ваш диск> pp \ bin \ i386-win32 \ ppc386.exe.
А за одне і шлях до make:
<Ваш диск> pp \ bin \ i386-win32 \ make.exe.

Як шлях до ісходникам FPC, зрозуміло, вказуємо <шлях до ісходникам>, з яких зібраний компілятор.
Якщо планується розробляти віконні додатки, використовуючи візуальне проектування, то відразу пересоберём LCL, а в разі використання пакетів доведеться пересобрать їх і, як наслідок, потім і весь Lazarus. Для цього відкриємо меню Інструменти, Налаштування збірки Lazarus.
У списку виберемо необхідні компоненти і натиснемо на кнопку Зібрати.
Для початку достатньо пересобрать LCL.
Але це стосується звичайного компілятора, з крос-компілятором є деякі особливості:
По-перше, в меню Оточення, Налаштування оточення вказуємо: <Ваш диск> pp \ bin \ i386-win32 \ ppcrossarm.exe.
По-друге, якщо використовується LCL, необхідно її зібрати для платформи arm-wince, для цього відкриваємо меню Інструменти, Налаштування збірки Lazarus, вказуємо в якості цільової ОС - wince, а в якості процесора - arm. Подальші дії такі ж, як і при звичайній перезібравши.
По-третє, для кожного нового проекту необхідно відкривати меню Проект, Опції компілятора і вибрати цільову платформу на вкладці Код, тобто .:
для якої ОС = WinCE,
для ЦП> = arm.
При використанні LCL необхідно так само вибрати wince на вкладці Шляхи в поле Тип елемента керування LCL.

Тестування та налагодження

Щоб кожен раз після складання не витрачати багато часу на ручне копіювання та запуск програми на пристрої, досить в меню Оточення, Налаштування відладчика вибрати крос-відладчик для arm-wince, в нашому випадку:
<Ваш диск> pp \ bin \ i386-win32 \ make.exe.
Тепер програма автоматично буде копіюватися на пристрій і запускатися.
Якщо налагодження не потрібно, і програми були невеликого розміру - вимкнемо опцію видаватимуть номери рядків в помилках часу виконання, на вкладці Зв'язування. При цьому автоматичне копіювання і запуск не перестануть працювати. Такий варіант зазвичай краще, ніж подальша обробка отриманого файлу утилітою arm-wince-strip.exe.

Перше додаток для Windows Mobile

Якщо планується писати не візуальний сервіс (навіть без консолі), або використовувати для виведення графіки тільки кошти WinAPI - нічого більше налаштовувати не потрібно, можна в Lazarus створити проект Програма, вибрати цільову систему як описано вище, і підключити до нього юніт Windows.
Приклад програми, що виводить на екран стандартне вікно повідомлення Windows з написом

program

Project1; {$ mode objfpc} {$ H +} uses Windows; begin MessageBox (0, 'Hello Mobile World', '', MB_OK); end.

З консольними додатками справа йде гірше, але FPC тут ні до чого - Windows Mobile взагалі не підтримує консоль за замовчуванням. На даний момент мені не відомо засобів, для додавання підтримки консолі на смартфон. Для КПК і комунікаторів існує кілька розробок, наприклад http://www.symbolictools.de/public/pocketconsole/applications/PocketCMD/
Однак я не раджу витрачати на це час: для того щоб у користувача заробила Ваша консольна програма, йому також потрібно буде встановити ці бібліотеки. Крім того, реалізувати подобу консолі можна і в віконному додатку.
Зроблю невеличкий відступ, і чесно зізнаюся, що поки не все заголовки WinAPI перенести для FPC (особливо це стосується в основному смартфонів і Коммунікаторів), але робота над цим активно ведеться, і незабаром таких проблем виникати, сподіваюся, не буде.
У разі якщо Вами не виявлено необхідних заголовків, ви можете самі їх додати і вислати в мантиссу патч, або, якщо не знаєте, що це таке можете зв'язатися зі мною або Юрієм Сидоровим.
Розробка віконних додатків взагалі, і віконних додатків для Windows Mobile зокрема є дуже великою темою, яку неможливо повністю висвітлити в рамках однієї статті, тому дана тема винесена в окремий розділ.

III. Розробка віконних додатків для Windows Mobile в Lazarus.

Програмування без візуального проектування і LCL

WinAPI

Якщо Ви плануєте не використовувати візуальне проектування, то ніяких подальших дій з налаштування Lazarus не потрібно. Створимо НЕ візуальний проект, підключимо Windows, і, використовуючи WinAPI, почнемо створювати форми самостійно. API WinCE, до речі, багато в чому схожий з API Win32.
Але в 2007 році такий підхід застосовувати не дуже вигідно, тому розглянемо альтернативний варіант:

Бібліотека KOL (Key Objects Library)

Бібліотека KOL написана Володимиром комори і перенести для Windows Mobile Юрієм Сидоровим і дозволяє створювати легковагі, але цілком функціональні додатки для Win32 і WinCE.
існує сайт http://kolmck.net/rindex.htm , Це сайт Володимира Кладова, на якому можна знайти масу інформації і документації, так само всі останні новини, що стосуються Win32 версії KOL.
Ще один сайт http://www.kolnmck.ru/start.shtml , Це сайт, судячи з усього підтримуваний Майстрами Delphi, в розділі можна скачати KOL, портированию під Windows Mobile, крім того непоганий набір статей, які можна застосувати до KOL для Windows Mobile.
Однак завантажити останню версію портированию KOL найзручніше, використовуючи SVN: http://sourceforge.net/svn/?group_id=188451 . Сам проект знаходиться за адресою http://sourceforge.net/projects/kol-ce . Якщо SVN відсутня - можна скористатися посиланням https://kol-ce.svn.sourceforge.net/svnroot/kol-ce/trunk/ і завантажити останню версію KOL. Для цього зручно використовувати менеджери закачувань, здатні закачати відразу всі файли, що знаходяться по посиланнях на сторінці. Я, наприклад, використовую безкоштовний Download Master: http://www.westbyte.com/dm/?source=dm1 .
Отже, для того щоб використовувати KOL, досить в Lazarus створити проект, а потім просто додати шлях до цієї бібліотеці в шляхах пошуку. У Lazarus, нагадаю, це робиться в меню Проект, Опції компілятора, на вкладці Шляхи (в поле вводу Інші модулі). Можна звичайно один раз додати рядок -Fu <Шлях до KOL> в файл <шлях до компілятору> bin \ i386-win32 \ fpc.cfg.
Нижче наводиться приклад простого віконного програми KOL.

program

KOLHelloWorld;
uses
Windows, KOL;
{$ Mode objfpc} {$ H +}
var
Form: PControl;
begin
Form: = NewForm (Applet, 'Hello World');
Run (Form);
end.

Програмування з використанням візуального проектування

Візуальне проектування, зрозуміло, має очевидні переваги, такі як висока швидкість розробки проекту і простота. Lazarus спочатку створювався саме в цих цілях. Замість того щоб, використовуючи WinAPI або KOL, практично наосліп створювати графічний інтерфейс - можна конструктированного його наочно, розміщуючи компоненти на формі і налаштовуючи їх властивості.

LCL (Lazarus Component Library)

В силу того, що Lazarus є кроссплатформенной середовищем розробки, то в залежності від використовуваної в системі GUI бібліотеки можна вибрати відповідний набір візуальних компонентів - WidgetSet.
Цей набір реалізується LCL, і повинен бути откомпилирован для цільової платформи. Як це зробити було описано в статті раніше.
Тепер просто створюємо в Lazarus проект Додаток і налаштовуємо його для ARM і WinCE. Після компіляції отримуємо робочу програму, але її розмір навіть без налагоджувальної інформації дуже великий для використання. У мене, наприклад, вийшла програма розміром 1.28 Мб. Аналогічне додаток, написане за допомогою KOL, має розмір близько 55 КБ.

KOL MCK (Mirror Classes Kit)

Чим більше KOL набирав свою популярність, тим більше людей хотіли мати кошти, для візуального проектування проектів, що використовують KOL.
В результаті був створена бібліотека дзеркальних класів, які використовуються тільки на етапі конструктірованія інтерфейсу і не потрапляють в кінцеву програму. Ця бібліотека також була перенесена на FPC і її можна встановити в Lazarus як пакет.
MCK входить в дистрибутив KOL. У портований для WinCE версії є пакет MirrorKOLPackage.lpk, який встановлюється в Lazarus наступним чином:
Спочатку в якості поточного компілятора виберемо ppc386.exe і налаштуємо перезбирання Lazarus на платформу i386-win32.
Потім відкриємо пакет в меню Компоненти, Відкрити файл пакета (.lpk).
Потім натискаємо на кнопку Налаштування і в діалозі, на вкладці Вмонтовані в IDE включаємо ручну компіляцію.
Після чого зберігаємо пакет, і натискаємо на кнопку Встановити.
Нарешті в файлі fpc.cfg додаємо наступні рядки:
-Fu <Шлях до KOL> / trunk / mck / lib / $ FPCTARGET /
-Fi <Шлях до KOL> / trunk / kol /

При наступному запуску Lazarus на панелі компонентів з'явиться вкладка KOL.
Тепер можна створити просте графічне додаток Lazarus і відразу зберегти його в зручну директорію. Після цього на форму необхідно додати компонент TKOLProject і в інспекторові об'єктів заповнити поле projectDest (ім'я генерується проекту).
Потім розміщуємо на формі компоненти TKOLApplet і TKOLForm і зберігаємо проект. В директорії проекту з'явиться ще один, з ним і будемо працювати. Відкриємо його і налаштуємо Lazarus на крос-компіляцію для ARM і WinCE. Крім цього в шляхах пошуку включення файл додамо шлях <Шлях до KOL> / trunk / kol /.
Зауважу, проте, що, на мій погляд, MCK на даний момент дуже вибагливий для використання, поряд з деякою нестабільністю самого Lazarus. Тому працювати поки не дуже зручно. Так як на смартфонах у мене виникли з ним проблеми, я взагалі відмовився від його використання. Сподіваюся, що надалі ці проблеми будуть вирішені, а доки задовольняються чистим KOL.

IV. Висновок

Сподіваюся, що, дочитавши до цього моменту, Ви маєте уявлення, як розробляти програми для WindowsMobile. Зауважу, що при розробці можуть виникнути деякі проблеми, але спільними зусиллями ми зможемо їх вирішити.

Хочу сказати спасибі всім, хто допомагав мені при написанні даної статті і привести посилання на статті інших авторів, з яких Ви зможете почерпнути додаткову інформацію:
http://wiki.freepascal.org/index.php/WinCE_port
http://wiki.lazarus.freepascal.org/Windows_CE_Interface

А як же Symbian, Embedded Linux і інші системи?
На чому ж зупинитися?
Aspx?
Aspx?
Aspx?
Aspx?
Net/svn/?
Com/dm/?
Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью