cannot make visible windows

JTB 2004-11-02 08:44:23
"cannot make a visible window"
小弟在作登陆界面时遇到了这样的情况:
1.我在主窗口的formcreate事件里调用登陆窗口的showmodal就会出现上面的错误。
代码如下:
procedure Tfrm_nMain.FormCreate(Sender: TObject);
{var
frm_login : Tfrm_login;}
begin
frm_login := Tfrm_login.Create(Self);
if frm_login.ShowModal <> mrOK then
begin
Exit;
end;
Init_mForm;
Init_dbConnect;
end;
在程序的另外一个部分同样也是这样写的
(procedure Tfrm_nMain.N7Click(Sender: TObject);
begin
frm_qe := Tfrm_qe.Create(Self);
if frm_qe.ShowModal <> mrOK then
begin
Exit;
end;
end;)
不同的是第一个例子是在主窗口生成之前调用另外一个form
第二个例子是在主窗口生成以后单击菜单项生成另外一个窗口,第二个例子没有问题。而第一个却有问题,小弟不知道是什么原因,请指教。
(注释:在projects的选项里面我已经把除了主窗口以外的所有窗口都设置成为available了)
2.对于第二个例子虽然对了,但是我还有疑问,如果在该例子的开始加上var frm_qe :Tfrm_qe;程序同样是没有错误的,这是为什么?这样是正确的那么两种写法是有什么区别呢?

...全文
132 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
JTB 2004-11-02
  • 打赏
  • 举报
回复
我在formshow里面也调用过还是不行。
xfgncit98 2004-11-02
  • 打赏
  • 举报
回复
在formshow里面调用。
JTB 2004-11-02
  • 打赏
  • 举报
回复
改成create(nil)还是那个提示。
我在单步执行的时候偶然发现,在Tfrm_login.create()以后其实已经生成呢一个登录窗口,我想但我在其它地方showmodal的时候所以会出现问题可能因为这个缘故。但是,我前面提到的那个frm_qe不也一样么,确没有问题,这到底是怎么回事?可不可以给我解释一下delphi建立窗口的过程或者说机制,什么样的情况下子窗口可以出现,什么状况下不可以出现?等等………………窗口出现的时机?在窗口创建以后不show就可以出来么?……………………
JTB 2004-11-02
  • 打赏
  • 举报
回复
那不会和Tfrm_qe里面的那个冲突么?两个名字我起的是一样的,是不是局部和全局,作用域的问题?
potee 2004-11-02
  • 打赏
  • 举报
回复
1.frm_login := Tfrm_login.Create(nil);试试
2.写var frm_qe :Tfrm_qe;后是局部变量,不写是全局变量
JTB 2004-11-02
  • 打赏
  • 举报
回复
问题没有解决!
xthmpro_cn 2004-11-02
  • 打赏
  • 举报
回复
1.将Tfrm_login的BorderStyle属性改为bsDialog试试
2.frm_qe是Tfrm_qe实现单元定义的全局变量.
liudeihua 2004-11-02
  • 打赏
  • 举报
回复
formshow
liudeihua 2004-11-02
  • 打赏
  • 举报
回复
你看看能不能在onshow的时候调用
JTB 2004-11-02
  • 打赏
  • 举报
回复
虽然已经解决问题,但是我还是想知道为什么是这样???
JTB 2004-11-02
  • 打赏
  • 举报
回复
问题已经解决,将该窗体的visible属性设置为false就可以呢。。。。。。。。

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧