假设有2个FORM:form1和form2。form2的功能类似于一个对话框,只有一个TEXTBOX控件,要求用户输入某些文本信息。在FORM1的程序代码中要引用FORM2的TEXTBOX的TEXT值,但不知为什么,传递过来总是空值。
FORM2我是用SHOWMODAL方法来显示的,用MODALRESULT:=mrOK来结束显示的。

解决方案 »

  1.   

    Form1中有一个Edit1和一个Button1,其中Button1的onClick代码如下:
    implementation
    uses Unit2;
    {$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
     if Form2.ShowModal=mrOK then
      Edit1.Text:=Form2.Edit1.Text;
    end;Form2中没有代码,只有一个Edit1,一个Button1,一个Button2,
    其中Button1的ModalResult属性为mrOK
    Button1的ModalResult属性为mrCancel
      

  2.   

    对不起,最后一句应该是:Button2的ModalResult属性为mrCancel
      

  3.   

    var
      china:Integer;implementation
    {$R *.DFM}则变量对于本工程文件里的所有都可见,或者你也可以用function 或procedure 来调用窗体函数变量返回即可
      

  4.   

    楼上3位仁兄,你们说得都对。我错的原因在于由于加了try...finally...结构,将form2.edit1.text变量传递地方放错了。我的原(错)代码如下:
    form2:=tform2.create(self);
    try
      form2.showmodal;
    finally
      form2.free;
    end;
    if Form2.ShowModal=mrOK then
        Edit1.Text:=Form2.Edit1.Text;
    正确代码应为:
    form2:=tform2.create(self);
    try
      form2.showmodal;
      if Form2.ShowModal=mrOK then
        Edit1.Text:=Form2.Edit1.Text;
    finally
      form2.free;
    end;请版主给分!