VCLとFireMonkey(FMX)の使い分け

2016.11.21更新

C++ Builderは、VCLとFireMonkey(FMX)のふたつのGUIライブラリを持っています。
FireMonkeyはなぜかFMXという別名を持っており、さらになぜかFireMonkey(FMX)で作ったアプリケーションはマルチデバイスアプリケーションと呼ばれています。
VCLとFireMonkey(FMX)は排他的利用で混ぜて使うことができませんのでプロジェクトファイルを作る段階からどちらを使うか決定しなければなりません。
VCLは、Windowsに特化し、一般的なWindows固有のブログラミングテクニックがそのまま使えることが多いです。
VCLはWindowsでしか動きません。
FireMonkey(FMX)は、複数のOSの開発ができることを考えて作られています。
他のOSでも使える反面、OS固有の部分にアクセスしにくいことがあります。
FireMonkey(FMX)の利点はクロスプラットフォーム、すなわち複数のOSで動くプログラムの開発ができることですが、それを取ったらVCLに勝てることはほとんどありません。
FireMonkeyがVCLに勝っているところは、部品の拡大縮小を動的にして且つ、マウス操作などが普通に使える機能があるところです。
もし悩む場合はVCLで作りはじめればいいと思います。
将来、有料エディションを買ってMac OS XなどWindows以外のOSでも動くようにしたいという希望があれば、FireMonkeyで作り始めていいと思いますが最終的に使う予定の機能がFireMonkeyの範囲内にあるかどうか考えなくてはいけません。
使いたい機能がFireMonkeyに全てあればWindows専用であってもFireMonkeyで作って特に問題はありません。
部分的にはVCLよりもFireMonkeyのほうが優れていますが、総合的にVCLのほうが多機能です。
またクロスプラットフォームが目的でFireMonkeyを選ぶ場合は、ターゲットのOSのバイナリ互換を考える必要があります。
ターゲットOSがバージョンアップすると今まで動いたいたプログラムが動かなくなってしまうリスクがあります。
そのことは「残念なFireMonkey」の記事にも書きました。
(C++ Builder XE8+Mac OS X 10.9.5 Mavericksで作ったプログラムは、最新のMac OSであるMac OS Sierraでも動作したので、Mac OS (X)については今のところ上位バージョンに対しては大丈夫なようです。)
プログラムを不特定多数の人に一般配布する場合はターゲットOSのさまざまなバージョンでテストしておいたほうがいいです。
WindowsであればテストしなくてもXP以降のバージョンならどのバージョンでも動くことが多いです。
しかし、FireMonkeyアプリケーションのWindows以外ではそうはいかないと思います。


C言語の話


あーすブラウザ
オンライン鍋田辞書
鍋田辞書トップ