2011-10-02 21 views
1

私はLazarusに2つのフォームを持っています。 1つはfrmMainで、もう1つはfrmSub1です。どちらもテキストボックスを持っています。Lazarus - なぜこれはShowModalで動作しませんか?

次のコードが機能します。すなわち、frmMain上のボタンをクリックする上で、値

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

しかし、私は.ShowModal.SHOWを交換するとき、それは形を示すが、frmSub1.txtAnsは空白になっています。

これはなぜそう考えられますか?

答えて

2

これは、ShowModalであるため、の呼び出しをブロックします。つまり、返されるまで実行される行はfrmSub1.txtAns.text := txtMark.Text;です。ステートメントの順序を変更する必要があります。次のように動作します。

procedure TfrmMain.cmdShowClick(Sender: TObject); 
begin 
    frmSub1.txtAns.text := txtMark.Text; 
    frmSub1.ShowModal; 
end; 
関連する問題