我已经找到了将编辑表单的几个实例复制到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的任何实例的值,例如。第一页/第一页?
答案 0 :(得分:1)
最好的方法是保存表单的实例。目前你能够做到的唯一方法是搜索页面控件上的控件。
例如,您可以执行以下操作:
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。