本人涉足Delphi不久,现有一问题困扰数天,始终不得其解.忘各位高手多多指点.感激不尽!(100分)

  • 主题发起人 主题发起人 zhaolin_918
  • 开始时间 开始时间
Z

zhaolin_918

Unregistered / Unconfirmed
GUEST, unregistred user!
[blue][/blue]实现目标: 程序启动,进入用户登陆窗体;当用户名和密码输入正确后单击确定按钮进入MDI的主窗体.
错误:进入主窗体时提示出错.
确定按钮的单击事件部分代码如下:
(省去输入错误和为空时的判断语句)
if password = Edit1.text then
begin
Form1.free;
Application.createForm(TForm2,Form2);
Form2.show;
end
经多次试验,就是此处代码存在问题,希望能得到热心人的帮助.多谢了!
 
Form1被你free了,导致出错了。
一般来说,我都是把第一个form留着,hide掉就是。
语句我觉得改成这样比较稳定,一直也是这样做的:
form1.visable:=false;
application.createform(TForm2,Form2);
form2.showmodal;
form2.release;
....//后处理
Close;
 
我一会试一下,我进入的窗体是MDI主窗体,如果第一个窗体不被FREE掉,那进入的窗体设为MDI的主窗体就会自动取消
 
你的Form1.Free语句是在Form1里面执行的吧,Free了之后,Application.createForm(TForm2,Form2)怎么执行呢。
一个办法就想二楼说的,把自己Hide掉。
还有一个办法就是,把代码写在Project里面,密码正确后,把Form1 Free掉。
 
我也试过把代码写进Project中,可还是出现同样的问题,可能是我写代码有误吧.谁能指导我解决这个问题,送上150分.凡热心指导我提供可能性答案者都有分.希望各位看在我诚心的份上,给予帮助!谢谢了!我的QQ是502032563
 
主窗体都free了程序那还怎么运行?你可以隐藏界面,没见过free主窗体的
 
先创建FORM2后再FREE掉主窗体,这样改一下就没问题了.
if password = Edit1.text then
begin
Application.createForm(TForm2,Form2);
Form2.show;
Form1.free;
end;
本来不想回答的.看LZ有诚意.分多.所以[:)]
 
谢谢各位!查了几本资料,现在问题解决了.
代码如下:
If Edit1.text = pass then
Form1.modulResult :=mrok;
///////////////////////////////////
Project 中代码:
```````
Application.CreateForm(TForm1,Form1);
If TForm1.ModulResutl = mrok then
begin
Form1.Free;
Application.CreateForm(TFomr2,For2);
Form2.show;
Application.Run;
end;
```
 
多人接受答案了。
 

Similar threads

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