Lazarus - 为什么这不适用于 ShowModal?
我在拉撒路有两种形式。一个是 frmMain,另一个是 frmSub1。两者都有一个文本框。
以下代码有效。即,单击 frmMain 上的按钮时,值
procedure TfrmMain.cmdShowClick(Sender: TObject);
begin
frmSub1.Show ;
frmSub1.txtAns.text := txtMark.Text;
end;
但是当我将 .Show 替换为 .ShowModal 时,它会显示表单,但 frmSub1.txtAns是空白的。
知道为什么会这样吗?
I have two forms in Lazarus. one is frmMain and the other is frmSub1. both have a text box.
The following code works. i.e., on clicking a button on frmMain, the value
procedure TfrmMain.cmdShowClick(Sender: TObject);
begin
frmSub1.Show ;
frmSub1.txtAns.text := txtMark.Text;
end;
But when I replace .Show with .ShowModal, it shows the form but frmSub1.txtAns is blank.
Any idea why this is so?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
那是因为
ShowModal
是阻塞调用,即行frmSub1.txtAns.text := txtMark.Text;
在返回之前不会执行。您必须切换语句的顺序,以下应该按您的预期工作:Thats because
ShowModal
is blocking call, ie the linefrmSub1.txtAns.text := txtMark.Text;
wont execute until it returns. You have to switch the order of statements, following should work as you expect: