form的showmodal碰到的问题

骑牛上铂金 2011-08-15 09:38:16
form1上有一个Button1
uses unit2,unit3;
button1.click事件调用form2
with tForm2.create(self) do
try
showmodal;
finally
free;
end;

form2上也有一个Button1
uses unit1,unit3;
button1.click事件调用form3
with tForm3.create(self) do
try
showmodal;
finally
free;
end;

再建一form3,也放一button
uses unit2,unit1

button1.click事件中showmessage(form2.button1.caption)总是报access violation错误

但如果在form2上放一button ,click事件中showmessage(form1.button1.caption)不报错

这是什么原因呀,请问才能在form3中调用form2中组件的值 呢?
...全文
90 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
骑牛上铂金 2011-08-16
  • 打赏
  • 举报
回复
明白了,谢谢!
dinoalex 2011-08-15
  • 打赏
  • 举报
回复
form1上有一个Button1
uses unit2,unit3;
button1.click事件调用form2
with tForm2.create(self) do
try
showmodal;
finally
free;
end;



with tForm2.create(self) do 这里建成的非FORM2这个变量

在FORM1里建FORM2,应该用

form2:= tform2.Create(nil);
form2.ShowModal;
form2.Free;
Oraclers 2011-08-15
  • 打赏
  • 举报
回复
因为Form1是主窗口,而Form2不是,你在建立时没有给Form2赋值,Form2为空指针。如改成:
Form2 := TForm2.Create(self);就可以了。
omagic 2011-08-15
  • 打赏
  • 举报
回复
你把uses的位置放到implementation下面试下看,

还有应该就是和shomodal模式有关
rainychan2009 2011-08-15
  • 打赏
  • 举报
回复
我很好奇,你能够在再Form2上再创建一个Form3

5,388

社区成员

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

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