delphi.gif (306 バイト) タブ付きダイアログボックス


Delphi3ではタブ付きダイアログを作るためのコントロールが4つあります。そのうち、2つはWindows3.1(Delphi 1.0)との互換性のためのものなので、Win32タブにある2つを使うのがよいでしょう。

toach.gif (917 バイト) TabControlを使う場合(Win32)

TabControlは、PageControlとは違って複数のページを持ちません。したがって、タブがクリックされるたびにページの内容を書き換えてやる必要があります。

  1. コンポーネントパレットのWin32タブからTabControlを選んでフォームに貼り付けます。
  2. TabControlの上にすべてのタブに表示するコントロールを貼り付けます。(重なり合っても気にしない)
  3. オブジェクトインスペクタでTabWidthプロパティを適切な幅に変更します。(デフォルトのままでもけっこうです)
  4. Tabsプロパティのプロパティエディタを表示させて、タブのタイトルを入力します。1行が1つのタブに対応します。
  5. イベントタブでOnChangeイベントハンドラを追加します。
  6. OnChangeハンドラで現在の選択されているタブ(TabIndexプロパティ)に応じたコントロールだけを表示するようなコードを追加する。これは、各々のコントロールのVisibleプロパティを制御してやればよいです。

delphi1.gif (322 バイト) 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;

 

toach.gif (917 バイト) PageControを使う場合(Win32)

PageControlはTabControlと違って複数のページを持ちます。

  1. コンポーネントパレットのWin32タブからPageControlを選んでフォームに貼り付けます。
  2. 必要ならタブの幅や高さを変更します。
  3. フォーム上のPageControlで右クリックしてポップアップメニューを表示させて、「ページ新規作成」を実行します。
  4. 新しいページが追加されるので、ページをクリックしてオブジェクトインスペクタにページのプロパティを表示させます。
  5. Captionプロパティを適切な内容に変更します。
  6. 3,4,5を必要なページだけ繰り返します。
  7. ページを切り替えてページごとにコントロールを貼り付けます。
  8. 各々のページは、PageControl上のTabSheetオブジェクトになります。コントロールをアクセスするときは、TabSheet上のコントロールとしてアクセスしてください。