请问如何取消继承 form2是继承的form1,现在form1需要加一些控件内容,但又并不希望显示在form2上,应该怎么办呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //父类窗口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; 编译时报错了,提示: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. 不可能。既然是继承,子类就将拥有父类的一切特性,这是OOP继承原则 哈哈 是我没说清楚//子窗体单元文件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)在基类中能安全调用. 在form2上设置该控件visible=false 继承时设为不可见procedure TForm11.FormCreate(Sender: TObject); begin edt1.visable := false; end; 请教调用delphi数据库匹配 请问这个循环怎么写? 求教:如何在WebBrowser或EmbeddedWB中另存图片? delphi中如何动态的连接access数据库 关于DAtetimepicker的问题 加密解密函数有问题吗? 急问:请教高手,如何实现exacl和access的相互导入和导出? 欢迎大家下载我的软件,下载者有分. 怎么只能现实数据库中的第一行数据啊?有100分哦 帮帮小弟 listview控件动态显示checkbox为何编译后显示出来却不能选择 有人用过Delphi封装的zeromq吗?
//父类窗口
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;
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.
哈哈 是我没说清楚//子窗体单元文件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)在基类中能安全调用.
procedure TForm11.FormCreate(Sender: TObject);
begin
edt1.visable := false;
end;