Top / Programming / C++Builder / TPageControlでウィザード画面を作成する

TPageControlでウィザード画面を作成する

TPageControlを使用すると、簡単にウィザード画面を作成することができます。

フォームにTPageControlとボタンを二つ配置します。

「前のページ」ボタンと「次のページ」ボタンのクリックイベントを記述します。

//「前のページ」ボタン
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  PageControl1->SelectNextPage(false, false);
}
//「次のページ」ボタン
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  PageControl1->SelectNextPage(true, false);
}

TPageControl.SelectNextPageはActivePageを現在アクティブなページの前後で表示されている隣のページに変更します。
関数の定義は次のようになります。

void __fastcall SelectNextPage(bool GoForward, bool CheckTabVisible);

GoForwardパラメータがtrueの場合は、ページコントロール内でActivePageの直後のページを選択します。
GoForward がfalseの場合は、ActivePageの直前のページを選択します。

CheckTabVisibleがtrue の場合、SelectNextPageメソッドが探す対象とするのは、TabVisibleプロパティがtrue に設定されたページだけです。

次に、ページコントロールのページが変更されたときのイベントを記述します。

先頭ページに時は「前のページ」ボタンを無効にし、最終ページの時には「次のページ」ボタンを無効にします。

void __fastcall TForm1::PageControl1Change(TObject *Sender)
{
  //「前のページ」「次のページ」ボタンの有効・無効を切り替える
  Button1->Enabled = (PageControl1->ActivePageIndex != 0);
  Button2->Enabled = (PageControl1->ActivePageIndex != PageControl1->PageCount-1);
}

TPageControlのTabVisibleをfalseに設定し、タブシートをページコントロールから削除します

void __fastcall TForm1::FormShow(TObject *Sender)
{
  for (int i = 0; i < PageControl1->PageCount; ++i)
  {
    PageControl1->Pages[i]->TabVisible = false;
  }
  PageControl1->ActivePageIndex = 0;
  PageControl1Change(Sender);
}

更新履歴