是这样的,比如我有个Form1里有个Button,一点Button,Form2.show,Form2里有一个Edit,输入一个数,传入Form1里的一个函数.该怎么做?

解决方案 »

  1.   

    在unit1代码声明的最后(implementation之后),中添加一个uses unit2.pas,就行了。
      

  2.   

    调用的时候使用在Unit1中使用Form2.Edit.text就可以使用Form2中的Edit了。
      

  3.   

    在Unit1的uses段中加入,Unit2;
    在Unit2的uses段中加入,Unit1;
      

  4.   

    显示form2用showmodal 方法,这样form2会返回一个数值result,在form2的formclose事件里面 result:=edit.text; 应该就可以了。
    注意 form2的visible属性要设定为false
      

  5.   

    另加一个单元pubunit,在Form1,Form2中uses pubunit就可以了吧。
      

  6.   

    回复: macula55(macula)成循环调用了....
    我是要让Form2.Button1Click里实现Form1的一个函数;
      

  7.   

    單元間以 uses 彼此參考
    請問我要如何才能在 unit2 中改變 unit1 中的變數值. 例如,我在form1(unit1)中 show form2(unit2) ,且在 form2中得到 user 輸入的字串,該如何將它傳給 unit1. 要存取另一個 unit 的變數、程序或函數, 只要利用uses述句中寫明那個 unit 的名稱即可, 例如: uses
      SysUtils, WinTypes, WinProcs, Messages, 
      Classes, Graphics, Controls, Forms, Dialogs; 
    不過, 在使用上有幾個提醒請您注意的: 兩個 unit 均在 interface 互相 uses 對方是不可以的,一定要互相參考的話, 您可以在 unit1 的 interface uses unit2, 然後在 unit2 的 implementation 中 uses unit1, 這點應該已經回答了您的問題。 
     uses 只能使用對方 interface 部分的變數、程序或函數, 如果是類別(Class), 即使該類別的物件定義在interface 部分, 也不能存取到該類別界定為 private的部分 
     uses 述句後的單元, 不論是.pas 或 .dcu , 不一定要與 project 放在同一個目錄, 如果這個單元在 project 所在的目錄中找不到, delphi 會在編譯時, 按照主選單 Options | Project... | Directories/Conditionals 這頁的 Search path 設定,或者是 Options | Environment | Library 這頁的 Library path 設定的內容, 逐一去搜 尋這個指定的單元所以,您可以將一般通用性的單元(例如專為字串處理撰寫的單元)整理在同一個目錄, 日後使用與修改這些單元時,版本上會比較統一且易於管理. 希望這些能幫得上您的忙祝:身体健康,答案和分数同样重要:)!!
      

  8.   

    回复: comerliang(天地良心)怎么实现?
      

  9.   

    procedure TForm1.SHMe(str: String);
    begin
       ShowMessage(str);
    end;
    procedure TForm2.Button1Click(Sender: TObject);
    begin
       Form1.SHMe(Edit1.Text);
    end;
    通过!!!
      

  10.   

    回复: ghyghost(著名关心CSDN结贴率爱国主义人士代表)
    我在unit2的implementation 中 uses unit1的话不能调用unit1里的函数啊
      

  11.   

    多谢ghyghost(著名关心CSDN结贴率爱国主义人士代表)
    做出来了