菜鸟提问:关于继承基类窗体的一个简单问题。。。(50分)

  • 主题发起人 主题发起人 delnew
  • 开始时间 开始时间
D

delnew

Unregistered / Unconfirmed
GUEST, unregistred user!
定义了一个基类窗体名为:Tform2,设置该基类窗体的背景颜色为蓝色。
现在建立一个窗体Tform3继承于该基类窗体。Torm3 = class(Tform2)
问:如何使Tform3的窗体颜色与基类窗体Tform2一致?在那里写inherited代码?
谢谢
 
新建form的时候选择你的工程名的属性页中的form2
 
不需写代码啊
既然继承
默认背景色就一致
 
比如:Torm3 = class(Tform2)
我在主窗体中调用如下代码显示Tfrom3
procedure TForm1.Button1Click(Sender: TObject);
var
modalForm:Tform3;
begin
modalForm:=TForm3.Create(Application);
try
modalForm.showmodal;
finally
modalform.free;
modalform:=nil;
end;
end;
end.
-------------------------
但modalform显示的颜色还是Tform3的,而不是基类Tform2的。
在Tform3的create和show中添加inherited没有作用。
 
对form3单点右键,选view as text
把Object Form3 :Tform3改为
inherited Form3 :Tform3
就可以了!
 
打开TForm3,显示窗体,按Alt+F12,显示dfm文件代码,把第一行第一个单词从Object改为Inherited
 
奇怪。。把Object Form3 :Tform3改为inherited Form3 :Tform3还是不行。。仍然显示的是form3的背静颜色
 
不可能吧,你在form2上加个button,看看form3有没有button,另外在form3 pas文件中,应有
Torm3 = class(Tform2)这样的语句吧, 而不是Tform3=class(Tform)
 
to hgood.我在form2上加个个button,显示form3的时候能够看到该button,但form3的窗体的背景颜色就是不是form2的,Torm3 = class(Tform2)那肯定加了。
 
都按照上面的改了,是不是还有什么地方遗漏了?
选view as text把Object Form3 :Tform3改为inherited Form3 :Tform3
这里Object和inherited分别代表什么意思?非常感谢
 
奇怪,需要写吗?
 
wiseinfo兄弟。。别笑啊。。帮忙分析一下?
dragonfly1979能够得到你的指点我是三生有幸啊。
 
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;

implementation
uses unit2;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
form2:=TForm2.Create(Application);
Form2.ShowModal;
end;
end.
 
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,unit1;
type
TForm2 = class(tform1)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
end.
 
你试试看,这样不就把颜色也继承下来了吗?
 
最简单的办法:解决不了你骂我:
(1)在你的Form2上点击右键->Add to Repository -> Page项选Forms -> OK
(2)File -> New -> other -> Forms -> Form2 选择Inherit
搞定!
 
这样之后,你在Form2上的任何改动立刻就会被Form3继承!
 
to dragonfly1979 检查了你的代码,跟我原来没有两样,我把你的代码复制过去,不行。
to 齐鲁张扬 按照你的方面对了,我再检查一下,是不是哪个地方没有继承好。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
729
import
I
后退
顶部