动态创建Delphi窗体的问题?(0分)

  • 主题发起人 主题发起人 gototlj
  • 开始时间 开始时间
G

gototlj

Unregistered / Unconfirmed
GUEST, unregistred user!
我动态的创建了一个窗体,但运行时窗体上是空的,我放在上面的控件都不见了,请高手指点?
源码如下:
procedure Tmainform.admin1Click(Sender: TObject);
var loginform:Tform;
begin
try
loginform:=Tform.create(application);
loginform.ShowModal;
finally
loginform.Free;
end;
end;
 
看看是那里設置有問題吧
 
高手帮忙?
 
你看看有没把单元的编译指令(加载*.FRM)给删了!
 
implementation

uses loginform
//包今含一下

procedure Tmainform.admin1Click(Sender: TObject);
begin
if loginform=nil then
loginform:=Tloginform.create(application);
loginform.ShowModal;
end;
 
你这个肯定是这样吗,
你并没有把loginform单元加进来呀,你只是创建了一个loginform呀!
你先再uses中加入loginformunit
然后
application.createfrom(tloginform,loginform);
loginform.showmodal;
 
loginform:=Tform.create(application);
loginform.ShowModal;
loginform.Free;
动态创建的窗口,界面肯定和Tform设计时是一样的
是不是Tform错了
你的另一个窗口是不是叫别的名,比如Tloginform什么的
 
loginform:=Tform.create(application);
创建的窗体是TForm类.也许你设计的窗体是类TLoginForm.所以你要显示LoginForm,那么你
必须创建的是TLoginForm实例,而不是TForm实例.这样:
var
loginForm : TLoginForm;
begin
loginForm := TLoginForm.CreateForm(Application);
loginForm.ShowModal;
end;
 
下面这一种写法可以说是动态创建窗体的标准方法,你可以用一下试一试:
如果再有问题,那么不是这段程序的问题:
1)把窗体引用到mainform:uses loginunit;
2)程序可以这样写:
procedure Tmainform.admin1Click(Sender: TObject);
begin
loginform:=Tform.create(application);
try
loginform.ShowModal;
finally
loginform.Free;
LoginForm :=nil;
end;
end;
 
哎。没有分,上当了
 

Similar threads

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