有FORM1,FORM2 2个窗体
我在FORM2窗体的DBGRID里选择一条记录 然后关闭FORM2窗体  在FORM1窗体EDIT显示记录   以下Form2窗体里写的公共函数
public Function ckcs(csdm,csmc:String ):String; //定义的公共函数
 
Function Tform2.ckcs(csdm,csmc:string):string  ;
 begin
csdm :=dbgrid2.DataSource.DataSet.FieldValues['storageID'];
csmc :=dbgrid2.DataSource.DataSet.FieldValues['storageName'];
result:= csdm+csmc;
end;Form1 窗体里调用procedure Tform1.Edit1Click(Sender: TObject);
var
  c1,c2:String;
begin
edit1.Text :=unit1.Form2.ckcs(c1,c2);end;
请各位高手指教 帮帮我我在
FORM2窗体
   showmessage(unit1.Form1.ckcs(csdm,csmc));  能显示出传的2个值FORM2窗体关闭FORM1窗体中的EDIT文本里没显示

解决方案 »

  1.   

    Edit1Click这个事件没触发啊,你不如这样写,在from2的ONclose事件写上
    From1.edit1.Text :=self.ckcs(c1,c2); 
      

  2.   

    这些代码还看不出问题。把Form2关闭时的处理代码贴出来。调用的时候不要这样
    unit1.Form2.ckcs(c1,c2); 
    难看,你在Form1中Uses unit1,然后直接 Form2.ckcs(c1,c2);
      

  3.   

    代码是对的,关键是你在什么时候调用那个公共函数计算值 然后去写的。你在Form1的Edit1Click中写的取值代码,到底有没有被触发过。我的估计可能这段代码没触发
      

  4.   

    你在Form1的ONshow事件里写edit1.Text :=ckcs(c1,c2);应该就可以了 
      

  5.   

    我在FORM2窗体里
    use unit1在确认按扭里加了下面这句
    unit1.Form1.edit1.Text :=form2.ckcs(csdm,csmc);就传到FORM1窗体里的EDIT1里了犯了个小错误小弟谢谢各位的帮忙