form2是继承的form1,现在form1需要加一些控件内容,但又并不希望显示在form2上,应该怎么办呢?

解决方案 »

  1.   


    //父类窗口
    TForm13 = class(TForm)
        edt1: TEdit;
        btn1: TButton;
      private
        { Private declarations }
      public
        { Public declarations }
      end;//子类窗口
    TForm11 = class(TForm13)
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form11: TForm11;implementation{$R *.dfm}procedure TForm11.FormCreate(Sender: TObject);
    begin
      edt1.free;
    end;
      

  2.   

    编译时报错了,提示:Invalid property valueunit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Unit1;type
    //父类窗口
      TForm1 = class(TForm)
        edit1: TEdit;
        button1: TButton;
      private
        { Private declarations }
      public
        { Public declarations }
      end;//子类窗口
      TForm2 = class(TForm1)
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form2: TForm2;implementation{$R *.dfm}end.
      

  3.   

    不可能。既然是继承,子类就将拥有父类的一切特性,这是OOP继承原则
      

  4.   


    哈哈   是我没说清楚//子窗体单元文件unit Unit2;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Unit1;
     
    type
    //子类窗口
      TForm2 = class(TForm1)
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
     
    var
      Form2: TForm2;
     
    implementation
     
    {$R *.dfm}
    procedure TForm2.FormCreate(Sender: TObject);
    begin
      edt1.free;
    end; 
    end.
    //父窗体单元文件
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
     
    type
    //父类窗口
      TForm1 = class(TForm)
        edit1: TEdit;
        button1: TButton;
      private
        { Private declarations }
      public
        { Public declarations }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    end.-------------------------------------
    这样可以达到你要求的效果, 需要注意的是你在子类中销毁的对象(edit1)在基类中能安全调用.
      

  5.   

    在form2上设置该控件visible=false
      

  6.   

    继承时设为不可见
    procedure TForm11.FormCreate(Sender: TObject); 
    begin
      edt1.visable := false; 
    end;