怎么将FORM1中的计算的数传到FROM2中去

解决方案 »

  1.   

    是在第一UNIT 的PUBLIC中定义的
    public
        Flag:Integer;
    end;
    在第一个窗体中Flag 的值有是对的可是传到第二个窗体值就不对了是0
      

  2.   

    在窗体间传值通常可以使用以下方法
    A、通过互相引或引用公用单元(主要通过公用变量传值)
    B、通过函数传值
    C、通过COPYDATA等消息传值
    其中最见的是通过函传数值
    例如
       FORM1需要传一个参数(假定字符型)并且在FORM2中的EDIT1中修改后回传给FORM1
    A、在FORM2中的PUBLIC的implementation之前定义方法 
      function test(MyMessage:String):String
      或在FORM2的PUBLIC中定义方法
      Class Functio test(MyMessage:String):String
     方法的具体代码如下
     begin
       with TForm2.Create(Application)
       try
         //给FORM2赋初值
         Edit1.Text:=myMessage;  //对传入参数进行处理
         if ShowModal=mrOK then
            result:= Edit1.text;
       finally
         Free;
       end;  
    B、在FORM1引用FORM2
    C、在FORM1中某事件调用代码类似如下
       var
          sTmp:String;
       begin
         sTmp:='hello';  
         ShowMessage(test(sTmp));
           //如果TEST定义成为CLASS方法则使用ShowMessage(TForm2.test(sTmp));
         //........
      

  3.   

    结合传址(指针或类)使用CLASS (静态方法)或通过公用函数定义可以实现窗体间复杂数据的传递,这样在一定程序上隐藏了不同单元之间的复杂性,降低程序的耦合性。