拉撒路 - 为什么这不适用于ShowModal?

时间:2011-10-02 10:17:02

标签: modal-dialog lazarus

我在拉撒路有两种形式。一个是frmMain,另一个是frmSub1。两个都有一个文本框。

以下代码有效。即,点击frmMain上的按钮时,值

procedure TfrmMain.cmdShowClick(Sender: TObject);
begin
  frmSub1.Show  ;
  frmSub1.txtAns.text := txtMark.Text;
end;

但是当我用 .ShowModal 替换 .Show 时,它会显示表单,但 frmSub1.txtAns 为空。

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:2)

这是因为ShowModal 阻止调用,即行frmSub1.txtAns.text := txtMark.Text;在返回之前不会执行。您必须切换语句的顺序,以下应该按预期工作:

procedure TfrmMain.cmdShowClick(Sender: TObject);
begin
  frmSub1.txtAns.text := txtMark.Text;
  frmSub1.ShowModal;
end;