Обновление приложения Win32 VCL до кроссплатформенного - PullRequest
4 голосов
/ 17 июня 2010

Delphi 2011 позволит скомпилировать приложения, которые будут работать и на Mac OS.(Примечание: я написал это предложение до того, как вышел предварительный просмотр Delphi-XE, и тогда все говорили о ProjectX).

Реально ли думать, что можно будет «перейти на кроссплатформенность»?Приложение Win32?

Будут ли сторонние поставщики компонентов делать свои библиотеки кроссплатформенными или это практически невозможно?

Я использую следующие сторонние компоненты:

devexpress - UI

devart - DAC

Построитель отчетов - UI

Steema / TeeChart - UI

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

Ответы [ 4 ]

4 голосов
/ 17 июня 2010

Платформа xplatfrom будет (насколько нам известно) чем-то похожим на пересмотренную (и, мы надеемся, значительно улучшенную) CLX, библиотеку на основе Qt, используемую в Kylix. VCL - это сильно ориентированная на Windows библиотека (и это хорошо), и она опирается на многие специфичные для Windows функции. Таким образом, совсем непросто - если не невозможно или не имеет смысла - сделать кроссплатформенные компоненты высоко совместимыми с аналогами VCL. Это гораздо проще для невизуальных элементов управления (т.е. DAC), чем для визуальных (то есть виджетов DevExpress). Если и когда сторонний поставщик выпустит свою библиотеку для xplat Delphi, это еще предстоит увидеть, многое будет зависеть от успеха и распространения Delphi 2011. Миграция приложения win32 на кроссплатформенность может потребовать небольших или больших изменений, в зависимости от того, как оно было написано, насколько оно связано с Windows и какие библиотеки используются. Для любого умеренно сложного приложения, IMHO, это не будет легкой миграцией.

3 голосов
/ 02 сентября 2010

Delphi 2011 вышел и называется Delphi XE.Он поддерживает только 32-разрядную версию Windows, как и предыдущие версии Delphi.64-разрядная версия, OS X и Linux остаются в «дорожной карте» .

Невозможно сказать, насколько просто будет работать кроссплатформенная Windows и OS X, пока Delphi фактически не поддержит ее.Но мы можем сделать некоторые предположения на основе Kylix, которая является прекращенной Linux-версией Delphi.

Kylix представила новую библиотеку компонентов под названием CLX.CLX был очень похож на VCL, но не идентичен.CLX был доступен как для Windows, так и для Linux.VCL все еще был включен для приложений только для Windows.Портирование приложения VCL в CLX не было слишком сложным, по крайней мере, если бы все ваши сторонние компоненты поддерживали CLX.Самым сложным было портировать те части вашего собственного кода, которые напрямую вызывают Win32 API.

Что сделали некоторые люди, включая меня, так это использование VCL в Windows и CLX в Linux.Это немного усложнило задачу, поскольку требовалось два набора форм: один для Windows и один для Linux.Чтобы сделать это успешно, вы должны были отделить как можно больше невизуального кода от форм.Например, вы помещаете свой TActionList в модуль данных, который является общим для версий VCL и CLX в приложении, а затем у вас есть отдельные версии VCL и CLX формы, которая предоставляет панели инструментов и т. Д., Которые используют список действий.Если вы планируете в будущем поддерживать несколько платформ, вы можете подготовиться сейчас, разделив как можно больше кода на блоки, которые не привязаны к форме.

Поскольку Delphi нацелена на создание собственных приложений, вы 'Я никогда не буду "компилировать один раз где-нибудь", как предлагает Java.Вместо этого мы будем «разрабатывать, как только скомпилируем много мест», предполагая, что Embarcadero выполняет свою дорожную карту.

3 голосов
/ 17 июня 2010

Что ж, Delphi 2011 сейчас находится в закрытой бета-версии, и немногие доверенные люди знают об этом.

Так что до конца августа, я думаю, мы не увидим его в действии.Однако я слышал, что новые кроссплатформенные приложения называются приложениями UCL, а не приложениями VCL.

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

Когда я говорю «Связанный», я имею в виду вызов библиотек или функций Windows.

Большинство программного обеспечения Delphi используют окна-специфичные функции, такие как ShellExecute, MessageBox, функции, импортированные из advapi, kernel32 и т. д., и те функции, которые недоступны на других платформах, поскольку они имеют свои собственные библиотеки.

Но яЯ ожидаю, что эта функциональность будет доступна в новой кроссплатформенной библиотеке, на случай, если это не будет большой ошибкой, imo.

1 голос
/ 31 августа 2010

DELPHI-XE не позволяет компилировать приложения для MacOS.

. Ознакомьтесь с матрицей функций Delphi-XE на сайте embarcadero .

.
...