1、先创建工程,并且设置好基窗体的属性,这里基窗体就叫Form1吧。
2、继承Form1步骤:
   a、选择菜单的File->new->other,弹出New Items对话框。
   b、点选与你工程名同名的页框,如:project1
   c、在此窗体中选中你需要继承的窗体,在本例中是Form1。
3、ok
这是绝对没有问题的!!
但是我现在是子窗体都建好了,但现在想用继承的方法
比如每个界面的增加,删除----菜单都和基类窗体U_base一致的,后来我在子窗体的type 子窗体= class(Tfrm_base),在uses中引用了U_base,然后再删除了子窗体各继承按钮的相关定义,和上面一个方法实现的代码已经没有区别,但是不起作用,难道非要用第一种方法吗,已经完成的子窗体就没办法再继承父窗体了吗

解决方案 »

  1.   

    已经完成的子窗体可以继承父窗体,这是肯定的,得找出问题所在....
    你把父窗体的代码贴出来
    再把子窗体implementation上面的代码贴出来吧
      

  2.   

    父窗体
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Buttons, ExtCtrls;type
      TForm1 = class(TForm)
        Panel6: TPanel;
        baddnew: TBitBtn;
        bdel: TBitBtn;
        bmodi: TBitBtn;
        bout: TBitBtn;
        bfuc: TBitBtn;
        bflash: TBitBtn;
        bquite: TBitBtn;
        bfind: TBitBtn;
        bprint: TBitBtn;
        procedure boutClick(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}
    子窗体
    unit Unit2;interfaceuses
      Windows, Messages,unit1, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm2 = class(TForm1)
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form2: TForm2;implementation
    没把菜单从form1复制过来,复制了就会说这些菜单已存在
      

  3.   

    你可以看看第一种方法创建的Form的CFM文件
    Form1的第一行是object Form1: TForm1
    Form2的第一行是inherited Form2: TForm2
    这就是区别..
    一般界面上的复用建议你用Frame更灵活 
      

  4.   

    谢谢.看到了区别,能否通过修改dfm文件或者其它办法来达到和第一种方法创建的得到同样的效果,把frame当作控件来复用,没试过,panel不行吗
      

  5.   

    晕 你就把
    object Form2: TForm2
    改成
    inherited Form2: TForm2