2011-10-02 68 views
1

我在拉撒路有两种形式。一个是frmMain,另一个是frmSub1。都有一个文本框。拉撒路 - 为什么不用ShowModal?

以下代码有效。即,在点击一个按钮上frmMain,值

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

但是,当我与替换.Show .ShowModal,它显示的形式,但frmSub1.txtAns是空白的。

任何想法为什么这是这样吗?

回答

2

那是因为ShowModal阻塞调用,即行frmSub1.txtAns.text := txtMark.Text;将不会执行,直到它返回。您必须切换报表的顺序,以下按预期工作:

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