新窗口打开时如何获取控件的值?

gztiger 2008-12-11 11:20:08
Form1和Form2

点击form1的某按钮触发事件
form2.edit1.text:='456';
form2.show;

这时打开的Form2的edit1里面有值:456

但我为什么无法使用form2里面edit1的值:456?

Procedure TForm2.formcreate(sender:Tobject);
begin
edit2.text:=edit1.text;
end;
结果:edit2没有任何变化.

我是新手,学delphi没几天,请各位delphi高手帮帮忙。
谢谢!
...全文
55 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
gztiger 2008-12-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yinxd6112 的回复:]
窗体的create事件在show之前发生,而此时edit1.text还没有值,就是说还没有执行form2.edit1.text:='456';
放到show事件里执行就可以了
Procedure TForm2.formshow(sender:Tobject);
begin
edit2.text:=edit1.text;
end;
[/Quote]

这时得到的值是edit的初始值,并不是Form1传过来的值啊
gztiger 2008-12-12
  • 打赏
  • 举报
回复
哦!!!!
明白了!!!
谢谢各位!!!
yinxd6112 2008-12-12
  • 打赏
  • 举报
回复
窗体的create事件在show之前发生,而此时edit1.text还没有值,就是说还没有执行form2.edit1.text:='456';
放到show事件里执行就可以了
Procedure TForm2.formshow(sender:Tobject);
begin
edit2.text:=edit1.text;
end;
gztiger 2008-12-12
  • 打赏
  • 举报
回复
也就是说Form2只能是显示Form1传过来的信息吗?
不能在form2中对form1传过来的值进行操作?
beifangke 2008-12-12
  • 打赏
  • 举报
回复
放在show里面活着一起赋值呀
form2.edit1.text:='456';
form2.edit2text:='456';
form2.show;
mygodsos 2008-12-12
  • 打赏
  • 举报
回复
不能放在create里面
放在show里面
edit2.text:=edit1.text;

5,388

社区成员

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

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