0

RunTime でタブシートを動的に作成し、次のコードを使用してその中に Frame を配置しました。

  procedure TForm1.Button2Click(Sender: TObject);
 var
  TabSheetG: TTabSheet;
begin
  TabSheetG := TTabSheet.Create(PageControl1);
  TabSheetG.Caption := 'Tab Sheet green  ';
  TabSheetG.PageControl := PageControl1;
  Frame3 := TFrame3.Create(nil);
  Frame3.Parent := TabSheetG;
  Frame3.Show;
end;

そして今、タブが既に作成されているかどうかを知りたいのですが、同じボタンをクリックしたときにアクティブにするだけです

4

1 に答える 1

3

TTabSheetタイプのプライベート変数をクラスに追加します。

type
  TForm1 = class(TForm)
  ....
  private
    FMyTabSheet: TTabSheet;
  end;

に自動的に初期化されnilます。

OnClickイベント ハンドラーで、変数が であるかどうかをテストしますnil。そうでない場合はタブシートを作成し、それ以外の場合は既存のタブシートを使用します。

procedure TForm1.Button1Click(Sender: TObject);
begin
  if not Assigned(FMyTabSheet) then
    FMyTabSheet := TTabSheet.Create(PageControl1);
    FMyTabSheet.PageControl := PageControl1;
    ... etc.
  end;
  PageControl1.ActivePage := FMyTabSheet;
end;
于 2015-10-29T12:43:22.450 に答える