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);
}