Поделитесь впечатлениями от FreePascal for WinCE ARM

Модератор: Модераторы

yantux
постоялец
Сообщения: 133
Зарегистрирован: 29.10.2007 15:02:33
Откуда: Санкт-Петербург
Контактная информация:

Поделитесь впечатлениями от FreePascal for WinCE ARM

Сообщение yantux »

Поделитесь впечатлениями от кросс компиляции для FreePascal for WinCE ARM.
Насколько это практично? Интересует сеть, окошки, работа с СОМ портами и общее впечатление.
Bupyc
постоялец
Сообщения: 137
Зарегистрирован: 29.08.2007 18:22:42

Сообщение Bupyc »

Я пытался написать приложение, которое считывает данные с встроенного GPS приёмника и передает по сети на Linux машину. В принципе все заработало достаточно успешно. Встречались кой какие глюки с RTL (например мне надо было скидывать отладочные сообщения в текстовый файл через TFileStream и он у меня писался исключительно в корневую директорию, хотя я указывал текущую). Но постепенно глюки исправляются. Так что не всё так плохо.
Правда с сетью и ком-портом я работаю через свои собственные компоненты, про то, что есть в фри-паскале ничего сказать не могу. Не пользовался.
На сегодняшний день лично меня больше всего напрягает сырость LCL для WinCE. Все таки без нормального набора визуальных компонентов писать коммерческие приложения достаточно тяжело. В принципе, можно посмотреть в сторону KOL-CE. По слухам там ситуация со стабильностью получше. Но это по слухам, сам не проверял.
Вообще, общее впечатление скорее позитивное, чем негативное. Хорошо, что хоть что то есть. Раньше и этого не было. Но брать на себя ответственность и писать за деньги визуальные приложения пока не решусь.
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Пишу под WinCE с использованием KOL-CE.
Впринцепе как компилятор FreePascal устраивает полностью. Есть некоторые проблемы с RTL, которые решить не проблема.
С COM портами работа такаяже как и в обычном Windows. Только есть одно но: в WinCE неподдерживаются оверлаппед функции (функция GetOverlappedResult вообще отсутствует!).
Есть различие в TAPI интерфейсе. Например при получении хендла порта модема невозможно отследить факт появления байта на входе!
Конечно большая часть мной описанного непосредственно к FreePascal мало относится!

p.s. в своих программах некогда не использую стороннние компоненты (пишу всегда руками), так что про работу с COM портом таких компонентов как Synaser сказать нечего не могу!
з.ы. на счёт LCL - это конечно хорошо, но объём кода!!!!!
Bupyc
постоялец
Сообщения: 137
Зарегистрирован: 29.08.2007 18:22:42

Сообщение Bupyc »

... как компилятор FreePascal устраивает полностью.


Полностью согласен. К компилятору никаких претензий.

С COM портами работа такаяже как и в обычном Windows. Только есть одно но: в WinCE неподдерживаются оверлаппед функции (функция GetOverlappedResult вообще отсутствует!).


Я тоже на это напоролся. Но у меня так написан класс поддержки ком-порта, что отсутствие оверлаппед функций особо сильно не сказалось. Сам класс имитирует асинхронную работу. Мне пришлось только чуть чуть его подправить. Весь остальной код остался без изменений.

Пишу под WinCE с использованием KOL-CE


Поделись впечатлениями. Как оно?
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Поделись впечатлениями. Как оно?

Сравнивать KOL-CE с LCL вообще не стоит. Для построения интерфейса там используются совершенно разнае подходы. Это всё равно, это сравнивать TurboVision(FreeVision) с VCL(LCL)!

Конечно и в KOL есть небольшие ньюансы, но всё же это более отлаженная библиотека, если сравнивать с LCL-WinCE при разработки, которой похоже, что не проводилась даже компиляция под платформу.

ps Если хочется визуального программирования установите связку MCK/KOL.
haword
постоялец
Сообщения: 301
Зарегистрирован: 02.03.2006 10:34:40

Сообщение haword »

LCL тоже ниче, работает потихоньку, есть комопненты для работы с базами данных, но прорисовка интерфейса ужас как тормазнутая. Плюсы можно портировать компоненты из под делфи и использовать их в WinCE. Насчет KOL-CE не понял как с базами данных работать, DB компонентов вообще нету. Если и есть то требуют компоненты дополнительные которые еще не портированы под KO-CE, например библиотека для работы с try..except.
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

например библиотека для работы с try..except.

Подключаешь модуль Classes и пользуешься эксцепшенами.

Какие вы базы данных собираетесь использовать в WinCE ARM?
haword
постоялец
Сообщения: 301
Зарегистрирован: 02.03.2006 10:34:40

Сообщение haword »

например адресная или кулинарная книга, используем допустим SQLite3, нужен грид к нему и пару DBEdit. На LCL это сделать не сложно, а как на KOL-CE?
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

haword

Я так понимаю вы пишите программы исключительно методом кликанья.
Для доступа к DB в FCL имеются пакеты.
Что мешает использовать заместо TDBEdit обычных Эдитов? А за место грида допустим использовать ListView в режиме таблицы!

п.с. Допустим я никогда не пользуюсь визуальными контролами (TDB*) для доступа к данным.
Аватара пользователя
FedeX
постоялец
Сообщения: 422
Зарегистрирован: 27.03.2006 09:25:34
Откуда: украина, житомир

Сообщение FedeX »

Меня под WinCE интересовала в основном графика под смартфонами.. Сейчас уже это бросил.
Пробовал писать окошки и в ручную и спользовал КОЛ (ЛЦЛ судя по всему расчитана для устройств со стилусом, так что никак не подошла)..
В смысле графики был немного разочарован - многие функции GDI не поддерживаються самой WinCE (к примеру кривые Безье вообще не поддерживаються, альфаблендинг включили только в WM6..). Пробовал также использовать GAPI - оказалось что он deprecated и не все новые девайсы его нормально поддерживают.. SDL для WinCE в принципе понравилась, но скорость отрисовки ИМХО слабовата. OpenGL ES нашол только софтовую реализацию, устройств поддерживающих аппаратное ускорение 3D единицы и почему-то большинство на xscale процессорах. Софтовая реализация (Vincent) впринципе работает, но уж больно медленно - несколько десятков треугольников и fps на разрешениии 320*240 падает до 2-5.
haword
постоялец
Сообщения: 301
Зарегистрирован: 02.03.2006 10:34:40

Сообщение haword »

Mr.Smart
KOL-CE очень странно работает в связке с MCK на Lazarus. Ну никак не хочет новые комопненты добавлять на форму, вернее добавлять то добавляешь на не конвертируется это в код. Код завален IFDEF-ами. А если не использовать MCK то вообще попа. Да может быть кого то и прикалывает писать программу все время мысленно представляя в каком месте на форме должено стоять поле для ввода или кнопка, запускать програму проверять точно ли оно тама или нет, гы меня такое не прельщает :)
Mr.Smart
долгожитель
Сообщения: 1796
Зарегистрирован: 29.03.2008 00:01:11
Откуда: из леса!

Сообщение Mr.Smart »

Ну никак не хочет новые комопненты добавлять на форму...

Есть такая проблемма. Решается очень просто в контекстном меню компонента KOLProject есть пункт меню Convert to KOL.

Да может быть кого то и прикалывает писать программу все время мысленно представляя в каком месте на форме должено стоять поле для ввода или кнопка, запускать програму проверять точно ли оно тама или нет, гы меня такое не прельщает

Вот вот оно поколение "кликарщиков"!
haword
постоялец
Сообщения: 301
Зарегистрирован: 02.03.2006 10:34:40

Сообщение haword »

Mr.Smart писал(а):
Ну никак не хочет новые комопненты добавлять на форму...

Есть такая проблемма. Решается очень просто в контекстном меню компонента KOLProject есть пункт меню Convert to KOL.

Пробывал это в первую очередь, никакого эфекта. Зато после этого в конце файла проекта lpr не добавляется или убирается хз как правильно {$ENDIF} один который надо руками добавлять.

Да может быть кого то и прикалывает писать программу все время мысленно представляя в каком месте на форме должено стоять поле для ввода или кнопка, запускать програму проверять точно ли оно тама или нет, гы меня такое не прельщает

Вот вот оно поколение "кликарщиков"!


Гы гы гы :) Невозможно напсиать именно "программу" а не форму с кнопками просто кликая по компонентам :wink: А когда что то тебя освобождает от написания рутины, типа размещения на форме елементов в рунтайме и обработку всех событий по расширению или сужению этой формы, то отдаешь все силы на написание именно кода программы а не бегать с бубном выясняя куда пропал елемент :)
Logo
постоялец
Сообщения: 464
Зарегистрирован: 20.08.2008 01:00:47

Сообщение Logo »

haword писал(а):Mr.Smart
Да может быть кого то и прикалывает писать программу все время мысленно представляя в каком месте на форме должено стоять поле для ввода или кнопка, ...

Нет, сейчас так не модно. Просто пишешь модуль, который, в зависимости от префикса в названии компонента, будет ставить его на свое место и все :) Это особенно хорошо, если много диалогов, они тогда такие одинаковые все....., сразу видно, что одного мастера дело.
А растыкивать компонеты мышкой очень долго и самое скверное, что после смены темы, эти компонеты начинают негармонично выглядеть на форме :( Например, создайте форму в теме Оксиген, а потом смените тему и запустите свою программу, это будет кошмар. Правда, в компонетах Lazarus есть свойство Sibling для связывания компонента с другими компонентами и оно очень помогает, но мне больше нравится когда за меня выравниванием компонентов занимается подпрограмма.
Medihlorian
новенький
Сообщения: 18
Зарегистрирован: 26.02.2009 14:31:41

Сообщение Medihlorian »

У меня впечатления больше негативные чем позитивные. Система очень не стабильная, и очень неудобная.
Кодить под KOL CE это извращение и полный геморой. И вообще не вижу смысла экономить полтора метра при современных технологиях, тем более что большинство приложений (задуманных мною) ориентировано на работу картинкаи и кнопками (хоть и бесплатные но страшные приложения никому не нужны).

LCL для WinCE очень не стабильна. То извиние, текст не виден, то он кразабрами, то сообщения где то на чукотке пояляются, то приложение после вызова сообщения вылетает, то оно просто вылетает потому что кликнул куда ни буть. Последнее меня добило: вызов обычно команды ShowMessage отображает сообщение на девайсе, но у него в заголовке и кнопка закрыть и кнопка ок а текст виден только на два строчки по три слова и там расположена ещё одна большая кнопка. Тоже самое с MessageDlg но если вызывать MessageBox то половина русского текста становится кракозябрами половина нормально и приложение вылетает!
Ответить