Delphi2010 タブセット(TabSet)
2010/09/21
前回は[Additional]内の「DockTabSet」(ドッキングタブセット)について見ましたので、今回は同じく[Additional]内の「TabSet」(タブセット)について見てみます。
タブセットは Delphi6 では [Win3.1]内にあります。
タブセットは、ヘルプによると
TTabSetコンポーネントは,ユーザーがクリックして操作を開始できる水平タブを提示します。
タブセットコントロールは,ダイアログボックス内に複数のタブ付きページを表示するために使用します。TTabSet は下位互換性の目的で提供されます。32ビットWindowsアプリケーションでは TTabControl を使用してください。
Tabsプロパティの値として文字列のリストを指定すると,タブセットコントロールにタブセットが作成されます。文字列ごとにタブが1つ作成されます。現在選択されているタブの識別やタブの選択を行うコードでは,TabIndex プロパティを使用します。タブセットコントロールの中でどのタブが最初に表示するタブかを調べたり,あるタブを最初に表示するタブにするには,FirstIndex プロパティを使用します。
とあります。Delphi6では[Win3.1]内にありますので、Windows3.1時代(Delphi1時代)のコンポーネントでしょうから、基本的にはこれを使用せず、タブのコンポーネントを使いたい場合は、[Win32]内にある「TabControl」(タブコントロール)を使うべきでしょう。若しくは、前回の「ドッキングタブセット」のようなことをしたい場合には、そちらを利用する、というパターンでしょうか。
まぁそれはともかく、取り合えず配置してみます。1つ目ですので
Name
プロパティは「TabSet1」となります。以下、ドッキングタブセットと同じ画像を流用しているものもありますので御注意下さい。
基本的に、タブセットは、ドッキング機能のないドッキングタブセットのようなものでしょうから、前回の説明の前半部とほぼ同じように利用できると思われます。
[Win32]内にある「TabControl」(タブコントロール)は、切り替えるコンテナ画面も持っていますが、このドッキングタブセットは、切り替えるタブだけを表示していてコンテナ画面はありません。切り替え対象の画面などは自分でパネル等を用意して、タブを切り替えたときに発生する
OnChange
イベントハンドラ
(※新しいタブが選択される直前に発生します)
でその切り替えのコードを自分で記述するという感じでしょう。例えば、下記のようにパネルとラベル・エディットを用意するとか…
切り替えを行うためのタブは、
Tabs
プロパティで作成することが出来ます。
↓
タブの切替を行って、それぞれの内容を入力させる、という単純なものです。入力内容はコンポーネントを利用する事も出来ますが、ここでは静的配列を用意して利用します。
type
TForm1 = class(TForm)
TabSet1: TTabSet;
Panel1: TPanel;
Label1: TLabel;
Edit1: TEdit;
private
{ Private 宣言 }
InpDat : array[0..3] of string ;
public
{ Public 宣言 }
end;
この静的配列の初期化は、フォームを開いた時=起動した時=フォームの
OnShow
イベントで行います。
procedure TForm1.FormShow(Sender: TObject);
var
i : integer ;
begin
for i:=0 to 3 do
InpDat[i] := '' ;
TabSet1.TabIndex := 0 ;
Label1.Caption := TabSet1.Tabs[0] ;
Edit1.Text := '' ;
end;
タブを切り替えた時のイベントハンドラを記述します。
procedure TForm1.TabSet1Change(Sender: TObject; NewTab: Integer;
var AllowChange: Boolean);
var
i : integer ;
begin
if (NewTab = -1) then exit ;
// 以前の値を格納
i := TabSet1.TabIndex ;
InpDat[i] := Edit1.Text ;
// 新しいタブへ切替
Label1.Caption := TabSet1.Tabs[NewTab] ;
Edit1.Text := InpDat[NewTab] ;
end;
それでは、保存・コンパイル(再構築)・実行をしてみます。
初期状態です ↓
CPUには「Pentium4」と入力し「メモリ」へ ↓
メモリには「8GB」と入力し「VGA」へ↓
VGAの内容を入力し「HDD」へ↓
HDDの内容を入力し「CPU」へ↓
先ほど入力した内容が表示されます
それでは<オブジェクトインスペクタ>を見ていきます。
まずは、
AutoScroll
プロパティです。これを True(デフォルト値)にしておくと、タブを沢山書いていくと横幅をオーバーしてしまう場合、自動的にスクロールスイッチが表示されるようになります。
ShrinkToFit
プロパティは、True にすると(デフォルトは False)、タブが増えたり長い名前だったりする場合に、なるべく沢山のタブを表示すべく、タブ内容を省略表記します。
SoftTop
プロパティは、タブセットの上端に線を表示するかどうかを指定します。False(デフォルト)の場合には表示を行い、True の場合は表示しません。
False
選択タブが目立つ感じ(デフォルト)
True
目立たない(ソフトな)感じ
Style
プロパティはタブセットのスタイルを指定します。デフォルトは「tsStandard」です。
tsModernPopout
tsModernTabs
tsOwnerDraw
tsSoftTabs
tsStandard
TabIndex
プロパティは、現在選択しているタブの番号(0〜)を示します。-1値は選択していない事を示します。
TabPosition
プロパティは、タブセットが切替画面のどの位置にあるのかを指定します。「tpBottom」(下側;デフォルト)、「tpLeft」(左側)、「tpRight」(右側)、「tpTop」(上側)のうちのいずれかを指定します。
使う事はまず無いと思いますが、取り合えず書いておきます。
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>
Delphi入門編
>
Delphi2010
▲2010/09/20
2010/09/21
▼2010/09/22
シェアウェア
Script!World
データベース
(C)Copyright 1999-2015. By AFsoft All Rights Reserved.