D7主动态创建窗体失败,请各位大侠指点

sailerbai 2003-12-21 12:04:38
程序代码:
If Not Assigned(qryForm) Then
qryForm := TqryForm.Create(Self);

If qryForm.ShowModal = mrOK then
........................
其中qryForm 是另外定义的一个窗体,在运行时创建,
下面是运行时的异常提示:
---------------------------
Debugger Exception Notification
---------------------------
Project ReadSMS.exe raised exception class EAccessViolation with message 'Access violation at address 77F9ADCA in module 'ntdll.dll'. Write of address 00405205'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
记得以前在D6中这样做是没有问题的,为什么到了D7就不行了呢?
或者是由于我使用D版的缘故?
...全文
65 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
sailerbai 2003-12-25
  • 打赏
  • 举报
回复
多谢dvmail(woo) ,果然问题不在这里,是由于我在创建的那个窗体的onshow中写的代码有问题!
hkbarton 2003-12-24
  • 打赏
  • 举报
回复
可以使用FreeAndNil(yourform)来释放你的窗体
kofxdm 2003-12-24
  • 打赏
  • 举报
回复
估计是qryForm被创建后,使用Free or Release释放,但是没有把对象(qryForm)=nil
这种情况虽然qryForm对象的确被释放了,但是qryForm <> nil,你用Assigned(qryForm)来判断是得不到正确得答案的。
dvmail 2003-12-24
  • 打赏
  • 举报
回复
delphi7里这段代码没问题,释放窗体用close也没报错,检查别的代码去吧!!
geodgehoul 2003-12-23
  • 打赏
  • 举报
回复
代码贴全点吧
你贴出来的没有语法问题
steventone 2003-12-23
  • 打赏
  • 举报
回复
up
madyak 2003-12-23
  • 打赏
  • 举报
回复
If Not Assigned(qryForm) Then
qryForm := TqryForm.Create(Self);

If qryForm.ShowModal = mrOK then

不知你后面怎么释放的窗体,释放后要确保qryForm:=nil;
否则上述代第一次运行正常,当窗体释放后,再运行可能就不正常了
percy_620515 2003-12-23
  • 打赏
  • 举报
回复
up
DelphiBird 2003-12-22
  • 打赏
  • 举报
回复
你的问题说不明白就贴代码看看被
sailerbai 2003-12-22
  • 打赏
  • 举报
回复
真是失望,csdn到底有几个是真正的高手啊,难道就只会要代码!

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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