一个奇怪的运行问题!大家帮帮忙看看。。。 (50分)

  • 主题发起人 主题发起人 xhli
  • 开始时间 开始时间
X

xhli

Unregistered / Unconfirmed
GUEST, unregistred user!
Application.initializtion;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
。。。。。。。。。
Application.CreateForm(TForm5, Form5);
Application.run;
怎么在Application.CreateForm(TForm1, Form1);这一步就开始执行form1的事件程序啦!
而不是所有的form都create后在运行这个工程的,这个form哪里出啦问题,其他的form都是
好的,苦恼,哪未能帮忙看看。。。先谢拉!
 
你是不在Form1的Create事件中写了代码?
 
写啦呀!就是初始化一些控件的位置大小,应该没关系!
 
不解,当然是开始执行 FormCreate事件的过程了,难道不是吗?
 
当然开始是执行formcreate事件,我的意思是说,这个窗口还没等application.run就执行form窗口中
所有的事件啦,这样其他窗口都还没create,肯定就会报错啦!
 
不可能吧!
除非你的create事件中用到了别的没有创建成的窗体。那样就会出错!
 
是的,我的create事件中连数据库是用到的函数在一个公共的窗口,但是我的另外一个模块的
project中的窗口也是这样写的,都没报错。
我跟踪对比啦这两个project的
Application.initializtion;
Application.CreateForm(TForm1, Form1);
。。。。。。。。。
Application.run;
这段过程,正确的project的过程是这样的,创建第一个form1,同时响应form1的create事件
执行完就到Application.CreateForm(TForm2, Form2);这步,一直到所有的窗口都create,再
Application.run;然后再响应form1的onshow事件,但是奇怪的是出错的那个project的过程是这样的:
当创建第一个form1,同时响应form1的create事件(脚本都是一样的)后马上就响应form1的onshow事件啦
在该事件中用到啦其他窗口,但是application还没创建那个窗口啊,所以哪位帮帮忙想想使那里出错啦?
 
把FORM的ONCREATE和ONSHOW代码贴出来看看。
 
请你在Form.OnShow中编写事件,并不调用这个事件先。
在Application.Run后再调用。

另外的方法是:
这些Form都让它们动态创建,用到时调用
From.Create;
 
你是使用的数据库的话,先建立数据库的部分
另外就可能需要一些小的技巧了,在第一次建立form的时候,对所有show的部分不执行了
实际上在form建立完后,会执行show的,虽然没有显示
 
谢谢各位的回答,我把这个project重新做过啦一遍,然后再把代码全部拷过去,就好啦!
我怀疑是这个窗口哪里属性设置的问题吧?不然一摸一样的代码怎么会有不同的结果,
wrf说:实际上在form建立完后,会执行show的,虽然没有显示。。。但我跟踪看到是
(我在form1的show事件头行就写啦个showmssage('test')),form建立后不会执行onshow事件的,
正常是一直到application.run后showmessage('test')窗口才执行。。。
我把这个project重新做过啦一遍,然后再把代码全部拷过去,就好啦!
我怀疑是这个窗口哪里属性设置的问题吧?不然一摸一样的代码怎么会有不同的结果,怎么回事?
 
xhli:你的问题已过期,要继续请结束,否则请提前,谢谢
 
后退
顶部