【B５】D l hi/C B ild テク カルセ シ ン【B５】Delphi/C++Builderテクニカルセッション

エンバカデロ・テクノロジーズ
エヴァンジェリスト 高橋 智宏

【B５】 VCLユーザーのための FireMonkey入門

はじめに FireMonkey とは？
 FireMonkey と VCL

 アプリケ
アプリケーションの外観
ションの外観 FireMonkey の便利なコンポーネント
 FireMonkey HD/3D アプリケ
アプリケーションション
 データベースアプリケーション まとめ【B５】 VCLユーザーのための FireMonkey入門

FireMonkey とは？
 XE2 から追加されたフレから追加されたフレームワーク
ムワ ク
 マルチプラットフォームに対応

 Win32,Win32 Win64 (XP～(XP , DirectX必須)
 OS X (10.7～)
 iOS (iOS5.1 ～)) プラットフォーム毎にネイティブアプリケーションを作成((VM等の中間層は無い)
等 中間層 無 ) CPU/GPU を利用した HD/3D アプリケーションの作成

FireMonkey
y フレームワーク
IDE
C++

Delphi

FireMonkey + ラインタイムライブラリ
DirectX

OpenGL

OpenGL
ESWindowsOS X

iOS

OpenGL
ESAndroid

【B５】 VCLユーザーのための FireMonkey入門

VCL
C vs.
s. FireMonkeye o ey
VCL

FireMonkey

Windows○○

Mac OS X×iOS×Android×○（将来）

Windowsに最適化

○

△

スタイル

○

○

グラフィック効果

×○

HD/3D×○

OSレベルのAPIコール○○

既存の開発資産
存
発資産

○

△

データアクセス○○

ビジネスアプリ○○エンターテインメント△○

クロス開発なら
FireMonkey○○

FireMonkey の特徴
 マルチプラットフォ
マルチプラットフォーム
ム 同一ソースで Windows 32/64, Mac OS X
 iOS アプリの開発
 ネイティブアプリケーション
C++ or DelphipFireMonkey

WindowsOS X

iOSAndroid

スタイル その１
 FireMonkey
 Windowsテーマの影響を受けない スタイルの切り替えでタイ切り替え
１つのコンポーネントに対し別の動作を設定可能
能 VCL Windows のテーマの有無に影響されることが多い (マニフェストを利用することもできます)

テーマなし

テーマあり

スタイル その２
 XE2より VCLにも TStyleManagerが提供され、FireMonkeyと同じように、アプリケーション全体・コンポーネントに適用できるようになった。
 ただし、VCLスタイルをイチから作るのはかなりの労力 コード上で作成されたスタイルリソースを動的に切り替える場合は、VCLの場合は Vcl.Themes、FireMonkeyyの場合は FMX.Styles を usesに追加し、次のように記述(この部分は双方ほとんど変わらない)スタイル その３
 FireMonkeyコ
FireMonkeyコード例
ド例//TStyleManager を利用した場合
procedure TForm1.Button1Click(Sender: TObject);
Begin
TStyleManager.SetStyle(TStyleManager.LoadFromFile(‘スタイルファイル名'));end;//Stylebook を利用した場合
procedure TForm1.Button2Click(Sender: TObject);
begin
StyleBook1.Resource.LoadFromFile(‘スタイルファイル名');end; VCLコ
VCLコード例
ド例

procedure TForm1.Button1Click(Sender: TObject);
begin
TStyleManager.SetStyle(‘スタイル名');end;スタイル その４
 プロジェクトチ
プロジェクトチームでの開発時もムでの開発時も、スタイルを使えば統スタイルを使えば統一した外観の設計が楽 コンポコンポーネントのような、パッケージのビルドやインスト
ネントのような、 ッケ ジのビルドやインストール作業は不要
 FireMonkeyなら後述する効果・アニメーションの組みy
合わせも自在。プロパティの変更だけで丸いボタンも楽に作成

コンポ ネントの組み合わせ
コンポーネントの組み合わせ
 FireMonkey

 VCL

 TControl の機能が拡張さ 親子関係にできるものが限られ何でも親子関係に
 複雑なインターフェースも複雑なイ タもコンポーネントの組み合わせで作成可能

れている
 組み合わせによっては自力組み合わせによは自力で描画

アニメ ションアニメーション
 FireMonkey

 VCL

 プロパティの設定だけで、コ 例えば TTimer を使ってイベンポーネント自身に動きを付けられる

ント内でコードを記述
 TAnimate
TA i
で .aviファイルをiフ イルを再生○ 開始値と終了値を指定し、それに沿って遷移○ 一連の値リストに沿って遷移
連 値リ ト 沿遷移 従来のコンポーネントにドラッグ＆ドロップで追加するだけ TAniIndicator

効果
 FireMonkey

 VCL

 豊富な効果コンポーネント

 自力描画 複数の効果の組み合わせ

 コンポーネントの作成も自在 コンポーネントにドラッグ＆ドロップで追加するだけセンサ ロケ ション カメラ
センサー・ロケーション・カメラ
 FireMonkey
 TLocationSensor,TMotionSensor 等コンポーネント,ネント クラスが用意されている

 VCL
 汎用的なクラスが用意されているので、それを利用してコ ドを記述
コードを記述コンポーネントアーキテクチャ
 FireMonkey
 アプリケ
アプリケーションのフレーム、ションのフレ ム、コンポーネント共に充実 HD(2D)/3Dの入れ子も可能

 VCL
 自力描画(プログラミング)○ DirectX○ OpenGL GLScene（OpenGLベースのGLS（OGLベ スの3Dライブラリ）等を使用する

HD/3Dコンポ ネント
HD/3Dコンポーネント
 フレフレームム

 TViewPort3D – 3Dオブジェクト用のフレーム HD上に置き3Dコンポーネントを配置することが可能
 TLayer3D – 2Dオブジェクトを配置できる 3Dレイヤ
 3Dコンポーネント

 TCamera、TLightg etc…
 TCube、TMesh、TGrid3D、TText3D etc…

デ タ
データベースフレームワーク
スフレ ムワ ク 提供されているフレ
提供されているフレームワークは、BDEを除き
ムワ クは、BDEを除きVCL/FireMonkey共に同じ
 dbExpressp IBExpress dbGO FireDAC

 BDEは、ホントもう使うのを止めましょう

デ タアクセス
データアクセス FireMonkey

 VCL

 DB専用の表示コンポーネ

 TDBxxx のような DB専用のントは無い。LiveBindingによりスタンダ ドの表示コによりスタンダードの表示コンポーネント(たとえばTEditや TLabel)を使用
 複数の属性のカラムが扱
複数性扱
える TGrid コンポーネント

表示コンポーネントが用意されている(DataSource経由で使用)
 LiveBinding によりスタンダ表ポ ネードの表示コンポーネント(TEdit 等)も使用可能

【B５】 VCLユーザーのための FireMonkey入門

FireMonkey
 設計手法はVCLの時と変わらない マルチプラットフォーム(Windows/Mac OS X/iOS)に対してネイティブアプリケーションを作成できる。
対してネイティブアプリケションを作成できる。
 Windows/Mac OS Xに関しては１つのコードで双方のプラットフォームのネイティブアプリが作成できる
 OSのネイティブAPIも使用できる 表現豊かなアプリケ
表現豊かなアプリケーションの作成。高解像度にも標ションの作成。高解像度にも標準で対応
 豊富なコンポーネントにより、コード量の削減。更なる
豊富り、量 削減。更生産性up

FireMonkey と VCL の使いどころ
 Mac OS X アプリケ
アプリケーション/iOSアプリ開発を考えてい
ション/iOSアプリ開発を考えている方 ⇒ FireMonkey
 過去
過去バージョンからの移行
ジョンからの移行 ⇒ FireMonekye o e yoor VCLC BDEアプリケーション ⇒ データベース自身のマイグレーションと、データベースアクセス部分をFireDACやdbExpressに変更し FireMonkey or VCL
 高解像度が必要なアプリケーション ⇒ FireMonkeyy タブレット用アプリケーション ⇒ FireMonkey
 iPad, Android, Windows 8

参考資料
 デデベロッパーキャンプアーカイブ
ロッパ キャンプア カイブ

http://www.embarcadero.com/jp/developercamp-japan/archive 第24回 - 「“FireMonkey が得意とするビジネスアプリ”の考察」
 第23回 - 「見た目で楽しいDelphiプログラミング」
 第22回 - 「FireMonkey道場」
 第21回
第- 「FireMonkeyファーストインプレッション」「プ 第20回 - 「DelphiでGLSceneを使って簡単な3Dプログラミング」

参考ビデオ YouTube – Embarcadero Japan

http://www.youtube.com/EmbarcaderoTechJapan
 RAD Studio XE3 Webセミナーシリーズ
 Developer Direct Webセミナーシリーズ
 過去のデベロッパーキャンプビデオ
 RAD Studio XE2ビデオシリーズ「8つのポイント」

参考ビデオ (英語) YouTube – Embarcadero Technologies

http://www.youtube.com/user/EmbarcaderoTechNet FireMonkeyy Tutorial Video Series 31 Days of RAD Studio XE2 Tutorial Series
 RAD Studio XE3
 RAD Studio XE2

エンバカデロ内の技術情報
 Embarcadero Developer Network (EDN)

http://edn.embarcadero.com/jp
 Embarcaderoba cade o サポ
サポート情報ト情報
http://support.embarcadero.com/jp
 Team Japanp Blogg
http://blogs.embarcadero.com/teamj