function Execute: Boolean;
var
  From1: TForm1;
begin
  Form1 := TForm1.Create(Application);
  if Form1.ShowModal = mrOK then
    Result := True
  else
    Result := False;
end;

解决方案 »

  1.   

    不要用messageBox啦
    用Form的ModalResult不就可以了。
      

  2.   

    使用模态窗体,利用其返回值modalresult可以实现控制,而且简单
      

  3.   

     if application.mesagebox(...,mb_okcancel)<> idok then...
      

  4.   

    function Tform2.Excute:integer;
    var
    form3:Tform2;
    begin
    Form3:=Tform2.Create(Application);
      if form3.ShowModal=mrok then
      result:=1
      else
      result:=2;
    end;
    这样做的话,原来Form2 的按钮变得不起作用了??
      

  5.   

    不是这样的。//TMyDialogBox为用做对话框的Form;有两个Button:OK,Cancel
    procedure TMyDialogBox.OKButtonClick(Sender: TObject);begin
      ModalResult := mrOK;
    end;procedure TMyDialogBox.CancelButtonClick(Sender: TObject);
    begin
      ModalResult := mrCancel;end;//在Form1中showModal 出 MyDialogBox1
    procedure TForm1.Button1Click(Sender: TObject);begin
      if MyDialogBox1.ShowModal = mrOK then
        Beep;end;具体你可以看一下ModalResult 的帮助。
      

  6.   

    如果你要传递的是数字或字符,你可以通过给Form的hint属性赋值(ShowHint为false,一般没有人给窗体提供hint),然后在退出后读出。这样可以减少建立全局变量。