2011-10-02 69 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;