use SubFormmainform.edit1.text := SubForm.Table1.FieldByName("yourfield").AsString;
Table1是DbGrid的Dataset
注意保证SubForm有效,没有被销毁

解决方案 »

  1.   

    easypaper:
    我试过了,只能返回最近的那个记录,如果我用光标移到后就无效了,
      

  2.   

    在你的主表单中调用子表单的地方定义一个变量Tem_text
    在调用子表单时用模式调用,即showmodal则确保在子表单后面所有程序不被执行,调用子表单时可用函数调用,用其变量Tem_text做参数,在子表单中修改Tem_text参数,返回后可直接用其参数值:
    程序:
    调用子表单的函数,定义于子表单的public中: 
    全局变量
    var
      ret_text:String;
    function showsub(var:tem_text):boolean;
    begin
      Application.createform(Tf_subform,F_subform);
      F_subform.showmodal;
      Tem_text:=Ret_text;
    end;其subform为你子表单名称,然后在子表单的Close事件中加入
    begin
      ret_text:=Table1.Fieldbyname('fieldname').Asstring;
    end;
    调用子表单的程序为:
    var Tem_text:string;
    begin
      showsubform(Tem_text);
      Edit1.Text:=Tem_text;
    end;同志,试一试,我用过多遍了,虽然有点儿烦,但很有用,可以让你在子窗体释放后而只传回这个变量,行不行给我回个话儿,OK?
      

  3.   

    调用子表单的函数,定义于子表单的public中: 
    全局变量
    var
      ret_text:String;
    function showsub(var:tem_text):boolean;
    begin
      Application.createform(Tf_subform,F_subform);
      F_subform.showmodal;
      Tem_text:=Ret_text;
    end;定义于子表单的public中好象不行呀,错误提示:'END'expected but 'VAR' found
      

  4.   

    为什么FUNCITON为BOOLEAN型不是STRING型吗?
      

  5.   

    我同意nononono(怎么这么多no啊)的看法,我以前就是这么作的!
      

  6.   

    cwhelucky:
    我的问题基本解决:
    当我运行的时候有编译错误提示:Return value funciton' tbrow.showsub' might   
     undefinedtbrow.showsub' 是从表单的FUNCITON代码定义部分,但程序可以运行,  是为什么?function Tbrow.showsub(var tem_text:string ):boolean ;
      begin
        //Application.createform(Tbrow,brow);
        brow.showmodal;
        Tem_text:=ret_text;
      end  ; //出错在此行
      

  7.   

    to:cwhelucky函数中的参数应不能改变吧!要改变就要用过程!