4

Delphi 2011 では、Mac OS でも実行されるアプリケーションをコンパイルできます。(注: この文は、Delphi-XE のプレビューが公開される前に書きました。当時、誰もが ProjectX について話していました)。

win32アプリケーションを「クロスプラットフォームに移行」することが可能になると考えるのは現実的ですか?

サード パーティのコンポーネント ベンダーはライブラリをクロス プラットフォームにする予定ですか、それとも実際には不可能ですか?

次のサードパーティ コンポーネントを使用しています。

devexpress - UI

デバート - DAC

レポートビルダー - UI

Steema/TeeChart - UI

ウィザードが私に代わって仕事をしてくれるとは思っていません。詳細をよりよく理解したいだけです。

4

4 に答える 4

4

xplatfromフレームワークは、Kylixで使用されているQtベースのライブラリである改訂された(そしてできれば大幅に改善された)CLXに似たものになります(私たちが知る限り)。VCLは強力なWindows指向のライブラリであり(そしてそれは良いことです)、多くのWindows固有の機能に依存しています。そのため、クロスプラットフォームコンポーネントをVCLの対応するコンポーネントと高度に互換性を持たせることは、不可能ではないか、意味があるとしても、まったく簡単ではありません。非ビジュアルコントロール(つまりDAC)の方が、ビジュアルコントロール(つまりDevExpressウィジェット)よりもはるかに簡単です。サードパーティベンダーがxplatDelphi用のライブラリを展開する場合、それはまだ見られませんが、Delphi2011の成功と普及に大きく依存します。win32アプリケーションをクロスプラットフォームに移行するには、アプリケーションの作成方法、Windowsとの関連付けの程度、および使用するライブラリに応じて、ほとんど変更または大きな変更が必要になる場合があります。

于 2010-06-17T11:00:11.530 に答える
3

Delphi 2011 がリリースされ、Delphi XE と呼ばれています。以前のバージョンの Delphi と同様に、32 ビット Windows のみをサポートします。64 ビット、OS X、および Linux はロードマップに残ります。

Delphi が実際にクロスプラットフォームをサポートするまで、クロスプラットフォームの Windows と OS X を実行することがどれほど簡単になるかを言うことは不可能です。しかし、廃止された Linux バージョンの Delphi である Kylix に基づいて、いくつかの推測を行うことができます。

Kylix は、CLX と呼ばれる新しいコンポーネント ライブラリを導入しました。CLX は VCL に非常に似ていましたが、同一ではありませんでした。CLX は、Windows と Linux の両方で利用できました。VCL は、Windows 専用アプリケーション用にまだ含まれていました。VCL アプリを CLX に移植することは、少なくともすべてのサードパーティ コンポーネントが CLX をサポートしていれば、それほど難しくありませんでした。最も困難な部分は、Win32 API を直接呼び出す独自のコードの部分を移植することでした。

私を含む何人かは、Windows では VCL を、Linux では CLX を使用していました。これにより、Windows 用と Linux 用の 2 組のフォームが必要になるため、作業が少し難しくなりました。これを成功させるには、非ビジュアル コードをフォームからできるだけ分離する必要がありました。たとえば、アプリの VCL バージョンと CLX バージョンで共有されるデータ モジュールに TActionList を置き、アクション リストを使用するツールバーなどを提供するフォームの VCL バージョンと CLX バージョンを分けます。将来的に複数のプラットフォームをサポートすることを検討している場合は、できるだけ多くのコードをフォームに関連付けられていない単位に分割することで、今すぐ準備できます。

Delphi はネイティブ アプリケーションの作成を目的としているため、Java のように「一度コンパイルすればどこでも実行できる」ということはありません。代わりに、Embarcadero がロードマップに従っていると仮定して、「開発したら、多くの場所をコンパイルする」ようにします。

于 2010-09-02T02:59:29.440 に答える
3

さて、Delphi 2011 は現時点ではプライベート ベータ版であり、それについて知っている信頼できる人はほとんどいません。

したがって、8月下旬までは、実際に動作することはないと思います. しかし、新しいクロス プラットフォーム アプリケーションは、VCL アプリケーションではなく UCL アプリケーションと呼ばれていると聞いたことがあります。

いずれにせよ、Delphi は伝統的に Windows ツールであるため、現在のアプリケーションは Windows プラットフォームに結び付けられていると思われるため、クロス プラットフォームへの変換の場合、プロセスが面倒になると思います。

Tied と言うときは、Windows ライブラリまたは関数の呼び出しを意味します。

ほとんどの Delphi ソフトウェアは、 、 、からインポートされた関数などShellExecute、Windows 固有の関数を使用します。これらは、独自のライブラリがあるため、他のプラットフォームでは使用できない関数です。MessageBoxadvapikernel32

しかし、私はこの機能が新しいクロスプラットフォーム ライブラリで利用できることを期待しています。

于 2010-06-17T10:32:07.763 に答える
1

DELPHI-XE では、MacOS 用のアプリケーションをコンパイルすることはできません

embarcadero サイトの Delphi-XE Feature matrix をご覧ください。

于 2010-08-31T08:02:47.050 に答える