AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
DelphiXE3 [FMX] タブコントロール(TabControl)2013/11/04
 
前回は [Grids]内のヘッダー(Header)について見てみました。これで[Grids]内は終了となります。次は[Common Controls]内のタブコントロール(TabControl)について見ていきます。
タブコントロールは、機能内容は多少異なるかもしれませんが、Delphi2010・VCLアプリケーションにもあります。
   【Delphi2010の記事はこちら】
   【DelphiXE3[VCLアプリケーション]の記事はこちら】
 
[Common Controls]内
FMX
 
ヘルプより。
TTabControl は、ノートの仕切りページのような外見のタブ セットです。
 
TTabControl を使用すると、複数のタブ設定を持つコントロールを FireMonkey フォームに追加することができます。現在のタブが変更されると、タブ コントロールでは、OnChange イベントのハンドラの中で、自身の内容を直接更新して変更を反映する必要があります。
 
TTabControl オブジェクトを無効にすると、一度にすべてのタブが無効になります。特定のタブを有効または無効にするには、Tabs プロパティをプログラムで以下のコード断片のように使用することができます。この例では、インデックスが 1 のタブが無効にされています。
 
TabControl1.Tabs[1].Enabled := False;
 
TTabControl を使用すると、特定アプリケーション向けのオプションや構成など、優れた機能を持つ豊かなグラフィカル インターフェイスを作成できます。
 


 
FullSize
タブ ボタンが、タブ バンド内のスペースをすべて占有するかどうかを示します。
 
FullSize プロパティを True に設定すると、クリック可能なタブ ボタンが、タブ バンド内のスペースをすべて占有するようになります。たとえば、非常に大きな幅のタブ コントロール コンポーネントがあり、そこに 2 つしかタブがなかった場合、FullSize を True に設定すると、この 2 つのタブ ボタンが、タブ コントロールの幅いっぱいに広がります。
FullSize を False に設定した場合には、Delphi が自動的に、タブ ボタンが占める領域を調整してくれます。
TabHeight
クリック可能なタブのキャプションの高さを、ピクセルで示します。
TabIndex
アクティブ タブのインデックスを示します。
TabIndex プロパティを使用すると、このタブ コントロール コンポーネント上で現在アクティブである(フォーカスされている)タブのインデックスを、設定または取得することができます。 値 0 は、最初のタブがアクティブであることを示し、値 -1 はアクティブなタブがない、もしくはタブ自体がないことを表します。
TabPosition
tpTop, tpBottom, tpNone
 
OnChange
このタブ コントロール コンポーネント上のアクティブ タブを変更した後すぐに、発生します。
 
OnChange イベント ハンドラを記述すると、このタブ コントロール コンポーネントのアクティブ タブが変更された際、追加機能を提供することができます。
 
配置したタブコントロールを右クリックし、表示されるコンテキストメニューの「項目エディタ」を選択指定、あるいは、ダブルクリックをすると、「項目デザイナ」画面が表示されます。
 

項目の種類は「TTabItem」のみ選択出来る状態となっています。
 
 
試しに、TTabItem を3つ追加してみます。



 

 
さて、使用方法ですが、VCLアプリケーションでのタブコントロールは、タブ毎に別々にコンポーネントを配置するのではなく、1パターンのみで、タブ(現在アクティブのタブ=タブインデックス)により、コンポーネントのプロパティ値を変更させ、コンポーネントを共通利用する、という形になりましたが、さて、FireMonkey(FMX)ではどうでしょうか? 試しに、ラベルとエディットとボタンを配置してみます。





??? これは、VCLアプリケーションのタブコントロールとは明らかに異なりますね。保存・コンパイル・実行をしてみます。





 
以上、FireMonkey(FMX)のタブコントロールは、VCLアプリケーションでいうところの、ページコントロール(PageControl) に相当する、という事でしょう。
 
次に、タブ切り替え時のタイミングを確認しておきます。
procedure TForm1.TabControl1Change(Sender: TObject);
begin
 ShowMessage('タブ:'+IntToStr(TabControl1.TabIndex));
end;
保存・コンパイル・実行します。





 
なお、クリックイベントのほうは、タブ以外の部分をクリックした時の処理となり、タブ切り替え時にはイベント発生しない様子です。
 
 
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
▲2013/11/03
 2013/11/04
▼2013/11/05
 
シェアウェア
Script!World
データベース
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.