将form1和form2的优先权调换后报错?请求帮助!!(100分)

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

gongwith

Unregistered / Unconfirmed
GUEST, unregistred user!
先用form1创建了一个工程,编译连结运行正常,后加入form2,将把form2设为主窗体后
编译通过,但是运行时总报错:Access violation at address "XXXXXXXX",但是仍然
可以运行,始终找不到原因,火大!!
 
你在Form1里面是否调用了Form2,在form1的OnCreate事件里面?
 
yzhshi:我的form1的oncreate事件里没有调用form2,在一个button的click中调用了
 
你的Form是动态创建的还是默认创建的,是不是在访问Form1/2的时候才出错?
注意,必须创建对象后才能对对象进行访问。
 
肯定是你在form1中调用了form1,你用单步执行看看。
就可以找到问题所在了。
 
默认创建的,单步执行到 :
begin
Application.Initialize;
Application.CreateForm(TForm2, Form2);
报错--> Application.CreateForm(TForm1, Form1);
 
你看看Form1,是否引用了Form2的属性?
应该是有的,在OnCreate或者其他先于Form1创建的事件中。

比如,一个数据库程序,在设计期Query是打开的,这个Query的BeforeOpen和AfterOpen等事件就是先于Form1执行的。
同时设置断点,或者使用f7调试,不要用F8
 
Form1的OnCreate、OnShow、OnActivate有什么代码?
 
OnShow、OnActivate一般应该无关的。
 
没有啊,只是在form1中有个BUTTON调用了FORM2,只是个form2.show语句!!
 
Form2里面含有调用form1的代码有那些,主要是这个!
 
有个form1.hide,不过把这句去掉,在运行时还会报错!(我没有积分了,不能提问了吗?)
 
我来解释我大哥的话,form2先与form1创建,在form2没有创建好之前,你调用还没有创建的form1的东西当染出错了

记得把分都给yzhshi哦
 
你的代码多少,如果不多的话,都贴出来吧。
呵呵,阿康呀,千万别犯个人崇拜主意错误吆。[:D]
 
>> 有个form1.hide,
就是这句了,才oncreate事件里写hide会出错的(什么错我忘了)
 
如果Form1.Hide写在了Form2.OnCreate里面,那么出现的错误是地址错。FFFFFF什么Error的
 
这样:
Form1的visible设置为false试试啦
 

Similar threads

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