form1有一个按钮button1,在button1.clicked中写一对话框fmDlg.showmodal;当fmDlg返回时,我希望将某一字符串返回到调用处,而我又不想写form1.varxxx=XXX;这种形式的语句。在PB里面,我可以直接closewithreturn(窗口,返回值),然后在调用处就可取用此值了,在Delphi中怎么办?难道没有优雅一点的办法吗?

解决方案 »

  1.   

    在Form1的单元里面声明一个函数或过程
    例如:
    procedure DoShowForm1(var sRel: string/Integer/....);
    begin
      with TForm1.Create(Application) do
      try
        sRel := xxxx;
        ShowModal;
      finally
        Free;
      end;
    end;//在调用的地方调用此过程即可
      

  2.   

    form1.varxxx = xxx;
    ——这种语句怎么就不优雅了?请赐教!
      

  3.   

    to smallBridge(萧秋雨) :
    form1.varxxx = xxx;这语句如果出现在form1的单元里面,也许没什么,如果我在form2的单元里面这么写,你觉得优雅吗?耦合的是不是紧一点了?
      

  4.   

    将返回的值写到一个文件中,然后在form1中读取。
    不知道这个笨办法算不算优雅,嘿嘿。
      

  5.   

    Form1并没有Close 象czx0514这样做会不会不妥?