delphi用PageControl加载窗体后调用问题!
在Delphi中有以下两个函数实现了多页面主窗体,即像浏览器一样每打开一个窗体就动态创建个tabsheet用以加载窗体,现在问题是加载到了tabsheet里面的窗体不知道...
在Delphi中有以下两个函数实现了多页面主窗体,即像浏览器一样每打开一个窗体就动态创建个tabsheet用以加载窗体,现在问题是加载到了tabsheet里面的窗体不知道怎么实现调用了!
比如frmMain里面有pageControl1,f1已显示在tabsheet1里面了,现在有个f2是通过showDialog显示出来的窗体,f2怎样才可以调用f1里面edit1的内容?
procedure TuniBaseOperate.ShowForm(PageControl: TPageControl;
FormClass: TFormClass; Caption: string);
var Form: TForm;
TabSheet: TTabSheet;
begin
if FindEqualForm(FormClass, PageControl) then Exit;
TabSheet := TTabSheet.Create(PageControl);
TabSheet.PageControl := PageControl;
TabSheet.Caption := Caption;
Form := FormClass.Create(TabSheet);
Form.Parent := TabSheet;
TabSheet.Tag := Integer(Form);
PageControl.ActivePage := TabSheet;
Form.Left:=PageControl.Left;
Form.Top:=PageControl.Top;
Form.Show;
end;
function TuniBaseOperate.FindEqualForm(FormClass: TFormClass; PageControl: TPageControl): Boolean;
var i: Integer;
begin
Result := False;
for i := PageControl.PageCount - 1 downto 0 do
if TForm(PageControl.Pages[i].Tag) is FormClass then
Result := True;
end; 展开
比如frmMain里面有pageControl1,f1已显示在tabsheet1里面了,现在有个f2是通过showDialog显示出来的窗体,f2怎样才可以调用f1里面edit1的内容?
procedure TuniBaseOperate.ShowForm(PageControl: TPageControl;
FormClass: TFormClass; Caption: string);
var Form: TForm;
TabSheet: TTabSheet;
begin
if FindEqualForm(FormClass, PageControl) then Exit;
TabSheet := TTabSheet.Create(PageControl);
TabSheet.PageControl := PageControl;
TabSheet.Caption := Caption;
Form := FormClass.Create(TabSheet);
Form.Parent := TabSheet;
TabSheet.Tag := Integer(Form);
PageControl.ActivePage := TabSheet;
Form.Left:=PageControl.Left;
Form.Top:=PageControl.Top;
Form.Show;
end;
function TuniBaseOperate.FindEqualForm(FormClass: TFormClass; PageControl: TPageControl): Boolean;
var i: Integer;
begin
Result := False;
for i := PageControl.PageCount - 1 downto 0 do
if TForm(PageControl.Pages[i].Tag) is FormClass then
Result := True;
end; 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询