ページの遷移にスライド効果を付ける[FireMonkey]

こういう感じのやつ。


FireMonkeyなのでWindows(32bit/64bit)でもAndoroidでも同じ処理。(iOSおよびiPhoneでも同様に動くはずだが、実機がないのでテストしていない)

FireMonkeyにはVclのPageControlはないので、TabControlを使う。
Vclとはかなり勝手が違う。ただしコードは1行も書く必要はない。

①FormにTabControlを貼り付け、右クリックメニュー[TTabItemの追加]からページを作成する。
slide%e5%8a%b9%e6%9e%9c_01%e3%83%bbtabcontrol01

②Tab表示を消す。TTabControlのオブジェクトインスペクタでTabPositionをNoneにする。
slide%e5%8a%b9%e6%9e%9c_02%e3%83%bbobjectinspector01

③Tab表示が消えた。
slide%e5%8a%b9%e6%9e%9c_03%e3%83%bbtabcontrol02

ここからが本題。

④フォームにActionListを貼り付けてダブルクリック。
メニューから[標準アクションの新規作成]。
slide%e5%8a%b9%e6%9e%9c_04%e3%83%bbactionlist01

⑤[標準アクションクラス]ウィンドウが出るので[タブ]の中の[NextTabItem]を選択
slide%e5%8a%b9%e6%9e%9c_05%e3%83%bbactionlist02

⑥さらに[標準アクションの新規作成]から今度は[PrevTabItem]を選択
slide%e5%8a%b9%e6%9e%9c_06%e3%83%bbactionlist03

⑦[NextTabItem]のオブジェクトインスペクタで[TabControl]プロパティに[TabControl1]を選ぶ。[PrevTabItem]も同様。ここでTransitionプロパティの値が[Slide]になっていることを確認する。ここがSlide効果の指定となる。
slide%e5%8a%b9%e6%9e%9c_07%e3%83%bbactionlist04

⑧TabItem1/TabItem2にそれぞれButtonを貼り付け、Button1のオブジェクトインスペクタで、[Action]にNextTabItemを選ぶ。
slide%e5%8a%b9%e6%9e%9c_08%e3%83%bbactiontobutton01

⑨Button1のキャプション(Textプロパティ)が自動的に[Next]に変わる。
slide%e5%8a%b9%e6%9e%9c_09%e3%83%bbactiontobutton01_2

⑩TabItem2にうつり、Button2の[Action]にこんどは[PrevTabItem]を選ぶ。
slide%e5%8a%b9%e6%9e%9c_10%e3%83%bbactiontobutton02_2

⑪Button2のキャプション(Textプロパティ)が自動的に[Prev]に変わる。
slide%e5%8a%b9%e6%9e%9c_11%e3%83%bbactiontobutton02_2

以上で終了。

各Actionの[Transition]プロパティのSlide/None選択だけで、ページ遷移時のSlide効果の有無を切り替えることが出来る。

なお、タブの標準アクションにはTChangeTabActionがあり、3ページ以上有る場合、ページ移動先の指定が可能。

C++Builder Berlin Update1で作成、Windows7(64bit)/Android4.4.2で動作確認。