Delphi для windows mobile

Delphi для windows mobile

Есть ли способы разрабатывать приложения для Windows mobile 5.0. в среде Delphi? Если есть, объясните пожалуйста, какие это способы, как их реализовать.

С уважением, morgoth.


TUser © ( 2006-03-15 21:21 ) [1]

Поставить фреймворк и использовать Delphi for .NET


Skyle © ( 2006-03-16 06:30 ) [2]

Насколько я знаю, для Compact существует только компилятор не интегрированный в среду, поэтому писать придётся в блокноте 😉


Карелин Артем © ( 2006-03-16 06:33 ) [3]


> Skyle © (16.03.06 06:30) [2]

У Борланда была статейка, где чел на BDS сделал программу на Win Mobile 5. Вот только ограничений там море.


Карелин Артем © ( 2006-03-16 06:34 ) [4]


> Morgoth2 © (15.03.06 21:20)

Адрес статьи к сожалению не помню. Тут на сайте полгода назад была тема.


> [4] Карелин Артем © (16.03.06 06:34)
> Адрес статьи к сожалению не помню

Жаль.


DVM © ( 2006-03-16 10:11 ) [6]

Самое лучшее имхо для PocketPC — это MS Embedded Visual C++. Он бесплатный к тому же — лежит на сайте MS. Net он тяжеловат для покета имхо.

Delphi для windows mobile

Подскажите как подружить Delphi и Windows Mobile 5.
Требуется написать простенькую БД для коммуникатора.
Помогите советами, ссылками на литературу и т.д. кто что знает


TUser © ( 2009-01-11 12:29 ) [1]

Надо версию под дот нет, например, 8 и выше, и удачу впридачу.


Skyle © ( 2009-01-11 12:30 ) [2]

Насколько я помню, никакая дельфи для .NET не умела под CF.


pavel_guzhanov © ( 2009-01-11 12:31 ) [3]

Может быть подойдет MidletPascal? Синтаксис паскаля, создает на выходе jar файлы для мобильных устройств. Если устройство поддерживает java, то никаких проблем. Почитать можно тут: http://www.liveofpc.3dn.ru/news/2008-09-28-241 , там же вроде есть ссылки на среду разработки


KilkennyCat © ( 2009-01-11 23:13 ) [4]


> Skyle ©

Плохо помнишь — любая может. Достаточно лишь не использовать некомпактное


> KilkennyCat © (11.01.09 23:13) [4]

Но это без дизайнера, чисто с использованием компилятора, nicht war?


KilkennyCat © ( 2009-01-12 07:31 ) [6]

Можно и с дизайнером, но там уже танец с бубном будет.
Но это я так возразил, из вредности 🙂
Фактически, нормальной работы не будет.
Учитывая, что даже в визуал студио, с эмуляторами и прочими продуманными вещами разработка ПО для мобильников не так чтобы легко и приятно, то в делфи это просто наизвращеннейший мазохизм.


vvrz © ( 2009-01-15 10:28 ) [7]

Очень печально что Delphi не хочет охватить такой кусок, коммуникаторы сейчас очень распространены


KilkennyCat © ( 2009-01-15 10:59 ) [8]


> vvrz © (15.01.09 10:28) [7]

А зачем? Давай еще попереживаем, что она не отхватывает все куски, в том числе, например, программирование микроконтроллеров, PLC, флэш-анимацию и какие-нибудь вообще нам неизвестные космические системы.
Просто не верно говорить о Delphi, как о единственном и конечном. Если говорить о захвате каких-то ниш рынка, то нужно уже говорить о компании Code Gear, или Эмаркадер (или как там ее). А в этом случае, у них есть средства для мобильных платформ. Но они требует уже твоего переобучения. Что вполне логично и естественно. Так что, учебник по Си-шарпу в руки и вперед, можешь работать дальше в RAD Studio.


tesseract © ( 2009-01-15 12:49 ) [9]


> Очень печально что Delphi не хочет охватить такой кусок,
> коммуникаторы сейчас очень распространены

Delphi с 2006 держит .NET CF , но за отдельные бабки, коммуникаторы реально настолько тормозны, что хочеться некоторые куски кода на асме писать. .Net на коммуникаторах — это жесть , особенно промышленного исполнения.

Можно еще FreePascal + Lazarus + KOLCE попробовать, «почти» Delphi и дизайнер есть, но там танцев с бубнами ооочень много. ))

Programming for Windows Mobile in Delphi

So Delphi now supports programming for Windows, MacOS, Android & iOS. Is there any way to use Delphi (XE5) to write programs for Windows Mobile?

4 Answers 4

You may look at Oxygene compiler from RemObjects, they have support for many platforms, including WinRT, iOS and Android, Here’s a quote from their website:

Oxygene 6 is out now, supporting 3 major target platforms: .NET, WinRT and Mono, Java and Android and NEW! native Cocoa development for Mac and iOS. the same language lets you targets all three platforms, and produces 100% native output for the respective platform

Oxygene isn’t a Delphi product, but it was bundled with Rad Studio as Delphi Prism

Delphi XE5 targets Windows desktop, 32 and 64 bit, 32 bit MacOS, iOS (ARM) and Android (ARM). It does not target any flavour of Windows mobile.

Читайте также:  Linux добавить архитектуру amd64

You can use Lazarus. http://www.lazarus.freepascal.org
It has support for WinCE.

Google for lazarus wince and you’ll see a sizeable list of references.
Don’t have experience with WinCE myself.

Delphi XE5 targets Windows 32bit, Windows 64bit, MacOS 32bit, iOS, Android and Web. It does not target any Windows Mobile.

You can download lazarus from http://www.lazarus.freepascal.org It has support for WinCE.

You can upgrade to Delphi 10.1 Berlin or even wait for Delphi 10.2 Godzilla. Delphi 10.1 Berlin Update 2 includes Windows 10 development and thus the ability to convert your Win32 or Win64 app to an AppX file. An AppX file is used to run apps on Windows 10. This includes Desktop, Xbox One, HoloLense, Mobile, Tablet, IoT, etc. Although I believe Delphi 10.1 Berlin Update 2 conversion to AppX uses the Desktop Bridge from Microsoft and thus your converted app might probably only run on Windows 10 desktop and Windows 10 tablet.

Разработка кроссплатформенных мобильных приложений в Delphi #2

В предыдущей части цикла мы сделали обзор основных возможностей новой RAD Studio XE5. Сегодня же перейдем к практике. Прежде всего, давайте определимся с задачей.

Постановка задачи

Не смотря на некоторую академичность задачи, в качестве примера мы выбрали кулинарную книгу. А для придания оригинальности разрабатываемому приложению, попытаемся расширить обычный для подобных программ функционал несколькими дополнительными функциями:

Пересчет количества требуемых продуктов.

Обычно в рецептах указывается точное количество используемых продуктов. Но если требуется изменить количество порций, то соответственно, необходимо пересчитывать и количество продуктов. В процессе приготовления блюда это не всегда удобно.

Таймер.

Если вы новичок в кулинарии, то, вам следует использовать рецепты, в которых четко указано время той или иной операции. И таймер на планшете, телефоне или нетбуке вполне может стать удобной заменой кухонному таймеру.
Часто бывает, что несколько операций выполняются параллельно. Каждая операция может иметь свой «таймер».
При этом нас интересует, как «настольная», так и мобильная реализация приложения. Мобильное приложение будет использоваться в качестве пособия для визуализации рецепта и сопровождения процесса подготовки. Настольная версия может быть использована в более расширенном функционале для, например, формирования новых рецептов.

Здесь следует оговориться, что в принципе, поваренные книги, как и книги по программированию, могут быть рассчитаны на разный уровень подготовленности читателей. В нашем случае речь идет о «рецептах для чайников», т. е. тех, в которых указывается точное количество продуктов и точное время того или иного действия.

Данное приложение мы реализуем для Windows и для Android. Затем на основе единой базы исходных кодов мы сможем выполнить портирование приложения на MacOS и iOS.

Выбор средств разработки

Прежде чем приступить непосредственно к разработке, давайте определимся с инструментарием. Разумеется, что данные, которые будут использоваться в приложении, целесообразнее всего хранить в базе данных.

Для чистоты эксперимента в качестве СУБД используем SQLite. Эта СУБД обладает рядом преимуществ, среди которых скорость работы, простота использования, экономичность в отношении ресурсов. Она идеально подходит для решения несложных задач, а кроме того, Android имеет встроенную поддержку SQLite.

В дальнейшем мы рассмотрим, каким образом можно перевести приложение на использования СУБД InterBase и покажем все преимущества «родного» решения от Embarcadero.

Вместе с приложением мы будем распространять уже готовую СУБД, созданную отдельно. Такой подход обусловлен спецификой задачи.

Конечно же, нам понадобиться Delphi XE5. Для создания Windows приложения в принципе мы могли бы ограничиться Professional редакциях. Но для т.н. мобильной разработки нам понадобиться как минимум Enterprise редакция продукта. В качестве альтернативы можно воспользоваться пакетом Mobile Add-On Pack for Delphi XE5 Professional.

Для работы с SQLite в Windows нам понадобится скачать с официального сайта библиотеку sqlite-dll-win32-x86-3080100.zip. Проще всего поместить данную библиотеку в одну из системных папок (например, Windows/SYSTEM32).
В настоящий момент существует довольно большое количество бесплатных средств администрирования баз данных SQLite. Вы вполне можете воспользоваться одним из них.

Доступ к базе данных из приложения мы будем осуществлять с помощью библиотеки FireDAC.

FireDAC — это универсальная библиотека доступа к данным, предназначенная для разработки приложений, подключаемых к различным базам данных. С помощью FireDAC можно разрабатывать, как VCL, так и FireMonkey приложения. Библиотека поддерживает следующие СУБД: InterBase, SQLite, MySQL, SQL Server, Oracle, PostgreSQL, DB2, SQL Anywhere, Advantage DB, Firebird, Access, Informix. Однако, на данном этапе, в мобильных приложениях «напрямую» (без использования технологии DataSnap) с помощью FireDAC можно подключиться только к SQLite и InterBase.

Создание базы данных

Процесс разработки мы начнем с создания структуры базы данных. Логическая модель ее приведена на диаграмме.

Данная диаграмма получена с помощью еще одного инструмента от компании Embarcadero Technologies — ER/Studio. Developer редакция этого продукта доступна пользователям RAD Studio Architect. В рамках настоящей публикации мы не станем детально останавливаться на описании ER/Studio. Этот мощный инструмент вполне заслуживает того, что бы посвятить ему отдельный материал.

При создании структуры базы данных каждой сущности логической модели будет соответствовать физическая таблица. Вкратце рассмотрим назначение полученных таблиц.

Читайте также:  Gulp sass on windows

В таблице tblFoodstuff мы будем хранить список всех возможных продуктов. В таблице tblUnit – список единиц измерения (грамм, ложка, стакан и т.д.). Таблица tblRecipe содержит список рецептов. В таблицах tblIngredientes и tblAction содержатся перечень ингредиентов (с указанием количества в поле qty) и действий (с указанием времени и описаниями), соответственно.

Для создания SQLite базы вы можете просто воспользоваться приведенным ниже скриптом.

Создание Windows приложения

Непосредственно процесс разработки приложения мы организуем следующим образом. Начнем с создания базовой версии приложения для Windows, затем портируем его на платформу Android. Далее будем расширять функционал обоих приложений параллельно. MacOS и iOS версии приложения станут заключительным этапом. К их созданию мы приступим после того, как будем иметь готовую Windows и Android версию.

IDE Delphi предоставляет несколько шаблонов новых приложений. В данном случае нас интересует FireMonkey Desktop Application.

После выбора соответствующего пункта меню на экран будет выведен дополнительный диалог, в котором будет предложено выбрать тип нового FireMonkey приложения – HD (High Definition) или 3D.

Переименуем главную форму приложения (в инспекторе объектов меняем свойство Name) и сохраним вновь созданный проект. Добавим в проект новый Data Module (меню File| Other ветка Delphi Files), переименуем и сохраним его.

Таким образом, мы создали новый проект и подготовились непосредственно к разработке.

Настройка FireDAC соединения

habrahabr.ru/topic/edit/200490/#
Первое, что нам необходимо сделать – настроить подключение к базе данных. В FireMonkey данная процедура существенно не отличается от VCL.
Поместим в DataModule компоненты TFDConnection, TFDGUIxWaitCursor и TFDPhysSQLiteDriverLink. В Object Inspector изменим значение свойства LoginPrompt компонента TFDConnection:

Двойной щелчок по компоненту на форме вызовет диалог настройки подключения.

В качестве Driver ID в нашем случае следует указать SQLite, а также в качестве значения параметра Database указать путь к файлу базы данных. Проверить правильность настроек можно с помощью кнопки Test.

Сразу же создадим функцию, отвечающую за подключение к БД в Run Time.

Для того, что бы данную функцию можно было вызвать из главного модуля, вынесем ее заголовок в секцию public.

Главная форма приложения

На главную форму приложения последовательно поместим компоненты TGroupBox, TTabControl и TSplitter. Настроим для каждого из них свойство Align (alLeft, alLeft и alClient, соответственно). На левую панель помещаем два компонента – TListBox и TBindNavigator. Размещаем их как показано на рисунке. Двойным щелчком мыши вызовем дизайнер пунктов компонента TTabControl, и создадим два пункта.

В левом части нашего приложения будет отображаться список рецептов. На вкладках в правой части – список ингредиентов блюда (с указанием количества) и, непосредственно, сам рецепт, состоящий из определенного списка действий.

Подключение данных

Как мы уже говорили, в FireMonkey нет специальных компонентов отображения данных. Вместо этого используется механизм связывания LiveBinding. Давайте посмотрим, как он работает. Подключим список рецептов к компоненту TListBox на главной форме. Прежде всего, нужно создать набор данных для работы со списком рецептов. В модуле данных используем компонент TFDTable. Настроим его свойства следующим образом:

В код нашей функции ConnectToDB добавим вызов метода открытия набора данных.

Для того, что бы установить соединение с базой в режиме Run Time следует добавить вызов функции ConnectToDB. Можно привязать его к событию OnCreate модуля данных.

На начальном этапе разработки приложения мы не будем обрабатывать исключения, которые могут возникнуть при подключении, хотя в дальнейшем это необходимо будет сделать.

Организуем вывод данных из таблицы TRecipe в список на главной форме. Для этого, прежде всего, добавим модуль данных в секцию Uses модуля главной формы программы.

В редакторе формы вызовем контекстное меню и выберем пункт Bind Visually. В нижней части экрана откроется LiveBinding Designer. В нем в виде элементов диаграммы представлены объекты и их основные свойства. Простым перетаскиванием свяжем свойства трех объектов так, как это показано на рисунке.

Собственно, это все, что нужно для отображения данных из таблицы рецептов (т.е. списка названий рецептов). Если мы сейчас запустим программу, она покажет список, но он будет пустым, и нам следует позаботиться о том, как добавлять рецепты.

Создадим новую FireMonkey HD форму. Настроим ее свойства следующим образом:

Name = fAddRecipe
BorderStyle = bsToolWindow
Position = poMainFormCenter

Подключим модуль данных и поместим на форме компонент TEdit и две кнопки. В LiveBinding Designer свяжем свойство Text компонента TEdit с полем Title набора данных.

Сохраним новую форум и удалим ее из списка автоматически создаваемых форм (меню Project|Options вкладка Forms).

Для главной формы приложения создадим метод:

При запуске программы определим событие AfterInsert для набора данных с рецептами.

Теперь, запустив приложение, мы получим список рецептов, который можно модифицировать с помощью навигатора. При добавлении нового рецепта на экране появляется форма с полем ввода.

В этой части цикла мы создали простейшее FireMonkey приложение для Windows. Научились устанавливать соединение с базой данных при помощи пакета FireDAC и рассмотрели простейший пример использования LiveBinding.

В следующей, возможно самой интересной, части цикла мы создадим первое Android приложение.

Читайте также:  Что означает прекращение поддержки windows

Оставайтесь с нами…

Похожие публикации

Как настроить iOS-устройство и RAD Studio XE8 (Delphi, C++ Builder)

Как настроить Mac OS X, iOS-симулятор и RAD Studio XE8 (Delphi, C++ Builder)

Использование TTreeView в Firemonkey приложениях

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Комментарии 65

Но популяризировать её с такими ценами невозможно.

Кто-то в Эмбаркадере вообще думает о популяризации? Я ещё не видел ни одного положительного отзыва о FireMonkey или новой кросс-платформенности. Все поголовно ноют про невменяемые тормоза в любых приложениях, выходящих за рамки «Hello World», про баги, про недоработки (вон, снизу уже комментарии подоспели). На официальном форуме нескончаемый срач. Популяризовать в буквальном смысле нечего, потому что новые фичи использовать невозможно.

Сейчас Эмбаркадера банально высасывает деньги из тех, кто уже «подсел» на Дельфи и никак не смог перебраться на что-то другое. Очевидно, что подсевшие — это в основном огромные неповоротливые компании, которые эти килобаксы могут потянуть без особых проблем. Вот их и доют. Это рационально.

Есть, конечно, некоторая надежда, что FM и кросс-платформенность доведут до нормального состояния, и тогда подумают о привлечении новых разработчиков, но я бы не задерживал дыхание в предвкушении.

Сейчас Эмбаркадера банально высасывает деньги из тех, кто уже «подсел» на Дельфи и никак не смог перебраться на что-то другое. Очевидно, что подсевшие — это в основном огромные неповоротливые компании, которые эти килобаксы могут потянуть без особых проблем.

Деньги не вопрос. Вот только перевести огромный проект 12-летней давности с D5 или D7 на XE5 та ещё проблема. Можно купить XE только для того, чтобы легализовать старые версии IDE.

А новые проекты на XE начинать никто не будет.

А новые проекты на XE начинать никто не будет.

С нетерпением ждем следующих статей. Delphi люблю и глубоко уважаю с детства. Возможность разработки под мобильные платформы для меня — один из ключевых факторов.

К сожалению, с такими ценами плохо представляю, как будет выглядеть отвоевывание утраченного рынка. $1000+ — это даже не смешно. Как я ни люблю Delphi, но можно гарантировать, что любые проекты, которые я буду начинать в ближайшем будущем, будут сделаны не на нем. А то, что начинают фрилансеры, в дальнейшем часто уходит на корпоративный уровень, и развивается и поддерживается без смены системы разработки.

PHPStorm/IDEA/PyCharm/ReSharper у многих лицензионный в виду более адекватных цен.

Ну и мне таки кажется, что в основном выбирают не пиратское ПО, а бесплатные варианты: Qt, Java, Visual Studio Express (Express тоже можно для коммерческого, ну и там еще есть всякие бизспарки, по которому можно на год получить Pro студию).

Для веб и мобильной разработки вообще много бесплатных сред, а вышеупомянутые продукты JetBrains, если уж совсем не хочется платить, то можно использовать вроде бы вполне легально EAP версии.

Считаете разумной? Кто я, что бы спорить )

Вопрос разумности цены в условиях рыночной экономики очень неоднозначен. Когда вокруг полно подобных инструментов по более демократичным ценам или вообще бесплатно, я, пожалуй, продолжу считать, что цена для меня неприемлема.

FireMonkey — ни разу не юзабельна. Я откровенно разочарован текущей маркетинговой политикой от Embarcadero. FireMonkey в текущем виде годится только для создания небольших семплов и туториалов. Посмотреть 3 записи в БД — да. Когда же форма обрастает компонентами — оно начинает люто бешено тормозить.
Я как то поставил себе XE3, и решил попробовать начать проект на FireMonkey. Думаю, если все пойдет — то по истечении 30 дней куплю таки себе в личное пользование XE3. Читал кучу туториалов, лазил по справке, в общем делал все как надо. Идеология работы с компонентами понравилась, но смотрю — что то как-то тормозит, хотя тормозить еще толком нечему. Чуть-чуть усложнил проект, на форме появились новые елементы, списки и т.п. Тормозит. Но почему? Полез разбираться.
А тормозит потому, что написано влоб for i := 0 to Childs.Count — 1 do… и гоняет код без каких либо оптимизаций по всем чайлдам/контролам. Лучшие оптимизации какие я там видел — это досрочный выход из циклов, и объединение 20 InvalidRect-ов в один через union 🙂
Ребят, в самом деле, вы что? Ту текущую реализацию, которая у вас вышла — её надо полностью выкинуть, потому что всего 100 записей в списке — и все, оно на скроллинге тормозит дико.

Я искренне желаю, чтобы маркетологи заставили программистов реализовать IDE на FireMonkey. Может тогда я думаю выйдет наконец то FireMonkey 3.0 с нормальной реализацией. А то уже 5 версий делфи с FM, а IDE никак не портируют на другие платформы.

Я бы мог еще тут рассказать про то как сама IDE падает при работе с FM, про замечательный новый RTTI, который полон багов и сюрпризов, про то как поломали и без того неудобный редактор библиотек типов. Но я считаю все это мелочью по сравнению с паршивой реализацией FM библиотеки.

Оцените статью