タブ付きダイアログボックス
Delphi3ではタブ付きダイアログを作るためのコントロールが4つあります。そのうち、2つはWindows3.1(Delphi 1.0)との互換性のためのものなので、Win32タブにある2つを使うのがよいでしょう。
TabControlを使う場合(Win32)
TabControlは、PageControlとは違って複数のページを持ちません。したがって、タブがクリックされるたびにページの内容を書き換えてやる必要があります。
- コンポーネントパレットのWin32タブからTabControlを選んでフォームに貼り付けます。
- TabControlの上にすべてのタブに表示するコントロールを貼り付けます。(重なり合っても気にしない)
- オブジェクトインスペクタでTabWidthプロパティを適切な幅に変更します。(デフォルトのままでもけっこうです)
- Tabsプロパティのプロパティエディタを表示させて、タブのタイトルを入力します。1行が1つのタブに対応します。
- イベントタブでOnChangeイベントハンドラを追加します。
- OnChangeハンドラで現在の選択されているタブ(TabIndexプロパティ)に応じたコントロールだけを表示するようなコードを追加する。これは、各々のコントロールのVisibleプロパティを制御してやればよいです。
OnChangeハンドラの例
procedure TForm2.TabControl1Change(Sender: TObject);
begin
case TabControl1.TabIndex of
0:begin
Label1.Visible := True;
Label2.Visible := False;
Label3.Visible := False;
end;
1:begin
Label1.Visible := False;
Label2.Visible := True;
Label3.Visible := False;
end;
2:begin
Label1.Visible := False;
Label2.Visible := False;
Label3.Visible := True;
end;
end;
end;
PageControを使う場合(Win32)
PageControlはTabControlと違って複数のページを持ちます。
- コンポーネントパレットのWin32タブからPageControlを選んでフォームに貼り付けます。
- 必要ならタブの幅や高さを変更します。
- フォーム上のPageControlで右クリックしてポップアップメニューを表示させて、「ページ新規作成」を実行します。
- 新しいページが追加されるので、ページをクリックしてオブジェクトインスペクタにページのプロパティを表示させます。
- Captionプロパティを適切な内容に変更します。
- 3,4,5を必要なページだけ繰り返します。
- ページを切り替えてページごとにコントロールを貼り付けます。
- 各々のページは、PageControl上のTabSheetオブジェクトになります。コントロールをアクセスするときは、TabSheet上のコントロールとしてアクセスしてください。