delphi编程中:如果要根据数据条数在标签页中新增几个同样的窗口可以做到吗,能不能把一个布置好的窗口保存为一个对象然后不断的新增它;在pagecontrol这里面新增同样的窗口比如:有A,B,C三个单位需要一份同样的资料但是A,B,C不能根据文件上的发送单位知道还有谁拥有这份资料,所以在发这份资料时,我只能动态生成三份一样的模板,然后手工填写不同的信息,发给这三个单位,现在想用到标签页这一种方式,如何实现根据数据库单位的多少来自动在标签页中生成N个相同的模板呢,不用EXCEL来做.这样方便数据库记录统计。我在一个EDIT里输入3 然后就弹出另一个窗口,上面有PAGECONTROL控件出现了三个PAGE每个PAGE上都有一个GRID一个edit一个BUTTON

解决方案 »

  1.   

    可以将相同的控件做到一个frame或者form里,然后动态生成三个TabSheet,生成TabSheet的同时将做为“模板”的form或者frame嵌到TabSheet里
      

  2.   

    能不能具体说说怎么操作啊,或者有DEMO也行啊,继承我不熟啊
      

  3.   

    晕,楼主,动态创建TabSheet会不会啊?
      

  4.   

    主要是怎么能继承创建到每个page里相同的模板窗口,动态创建tabsheet不难吧
      

  5.   

    unit   Unit1;interface uses 
        Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
        Dialogs, ExtCtrls, StdCtrls, ComCtrls, Unit3;//unit3是在设计期创建的一个frametype
      TForm1 = class(TForm)
        Button1: TButton;
        Edit1: TEdit;
        procedure Button1Click(Sender: TObject);
      private
      public
      end;var
      Form1: TForm1;implementation
    uses unit2;//unit2是你单击按钮后显示的窗体
    {$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      i,k:integer;
      newsheet:TTabSheet;
      newframe:TFrameModel;
    begin
      i:=strtoint(edit1.Text);
      for k:=1 to i do
      begin
        newsheet:=TTabSheet.Create(form2);
        newsheet.PageControl:=form2.PageControl1;
        newsheet.Caption:=inttostr(k);
        newsheet.Align:=alClient;    newframe:=TFrameModel.Create(nil);
        newframe.Parent:=newsheet;    newframe.Top:=0;
        newframe.Left:=0;    newsheet.Show;
      end;
      form2.Show;
    end;end.
      

  6.   

    newframe:=TFrameModel.Create(nil); 
    这句把括号里的nil改成newsheet
      

  7.   

    报错:[Error] Unit1.pas(32): Undeclared identifier: 'TFrameModel'
      

  8.   

    晕,把新建的那个Frame的Name改成FrameModel