复制选项卡表@运行时,在编辑过程后读回值



我已经找到了将编辑表单的多个实例复制到 Tpagecontrol 的代码

var
   aForm : TMyForm;
   tabSheet : TTabSheet;
begin
   //Create a new tab sheet
   tabSheet := TTabSheet.Create(PageControl1) ;
   tabSheet.PageControl := PageControl1;
   //create a form
   aForm := TMyForm.Create(tabSheet) ;
   aForm.Parent := tabSheet;
   aForm.Align := alClient;
   aForm.BorderStyle := bsNone;
   aForm.Visible := true;
   tabSheet.Caption := aForm.Caption;
   //activate the sheet
   PageControl1.ActiveSheet := tabSheet;
end;

假设我运行此代码 3x,如何读回 aForm.button 的任何实例的值,例如第一页/第一个实例?

最好的方法是保存表单的实例。目前能够执行此操作的唯一方法是搜索页面控件上的控件。

例如,您可以执行以下操作:

function CreateTabAndForm: TMyForm;
var
  tabSheet : TTabSheet;
begin
  //Create a new tab sheet
  tabSheet := TTabSheet.Create(PageControl1) ;
  tabSheet.PageControl := PageControl1;
  //create a form
  Result := TMyForm.Create(tabSheet) ;
  Result.Parent := tabSheet;
  Result.Align := alClient;
  Result.BorderStyle := bsNone;
  Result.Visible := true;
  tabSheet.Caption := Result.Caption;
  //activate the sheet
  PageControl1.ActiveSheet := tabSheet;
end;

但是,您需要小心使用此方法,因为如果页面控件被销毁,窗体可能会被销毁。

要创建选项卡,您将执行以下操作:

MyForm1 := CreateTabAndForm;
MyForm2 := CreateTabAndForm;
MyForm3 := CreateTabAndForm;

要访问表单上的按钮,请为 MyForm1.button。

最新更新