VCLコードを他のコードから分離するのは非常に良い兆候です。
n-Tierアーキテクチャは意味があり、IMHOの完全RADアプローチはプロトタイプ作成には適していますが、メンテナンス可能なアプリケーションの作成にはいくつかの欠点があります。
Delphi XE2を使用する標準的な方法は、FireMonkeyフォームとUIのみを使用することです。したがって、クロスコンパイルが容易になります。これは、メインテナンスの面では完全に意味があります。FireMonkeyのコードとフォームが設定されたら、再コンパイルするだけで、いくつかのプラットフォームに展開できます。そして、近い将来、Linuxがターゲットになる可能性があることを忘れないでください(DXSceneはLinuxとAndroidの準備ができていました)。フォームコンバータを使用すると、VCLの代わりにFireMonkeyを使用してコードを作成するのに役立ちます。
Mac OS Xのシンプルなフォームが必要なだけで、Windows用のより複雑なアプリケーション(マーケティングターゲットによってはアイデアかもしれません)が必要な場合は、純粋なFireMonkey「ライト」アプリケーションを作成できます。しかし、条件付き定義をたくさん使うのはお勧めしません。適切なFireMonkeyプラットフォームを使用して、多様なプロジェクトを作成します。 VCLプロジェクトとFireMonkeyプロジェクトの間で、非VCLユニットをすべて共有します。このパターンには条件付き定義は必要ありません。
参照[デルファイ-XE2-可能ツー・-FireMonkeyの-フォームでインスタンス化-vcl-application](http://stackoverflow.com/questions/7315050/delphi-xe2-possible-to-instantiate-a-firemonkey-form-in-vcl-application)を参照してください。同じコードベースのWindowsとosxアプリケーションを作成することはできますか? –
自分のコードであれば(3Dパーティーではない)、プロジェクトフォームVCLをMIDA(http://www.midaconverter.com/)のようなコンバータを使用してFMに変換することを検討することがあります – philnext
MIDAは自分のGDI +カスタムコントロール、DevExpressツールキット。私は標準のVCLからTActionList、TPanel、TFormだけを使用します:)しかし、とにかくチップのおかげで。 –