unit unit1;
interface
........
implementation
......
procedure abs(x:integer);
begin
abs:=.......;
end;end.________________________________
unit unit2
interface
......
implementation
uses
  unit1;
....
procedure callABS();
var
  x,...
begin
  x:=abs(x);//此处为什么调用不起来,要加别的什么说明吗?
end;
....
end.

解决方案 »

  1.   

    1:
    type
      ...
      public
        procedure abs(x: integer);2:
    var
      Form1: TForm;
      procedure abs(x:integer);
    In the Form2
    uses
      Form1;
      

  2.   

    unit unit1;
    interface
    ........
    implementation
    ......
    procedure abs(x:integer);///你这是个过程呀,过程没有返回类型呀!!!!
    begin
    abs:=.......;
    end;end.________________________________
    unit unit2
    interface
    ......
    implementation
    uses
      unit1;
    ....
    procedure callABS();
    var
      x,...
    begin
      x:=abs(x);//此处为什么调用不起来,要加别的什么说明吗?
      ///你这里怎么把一个过程给一个变量赋值呀!!!!!!
    end;
    ....
    end.
      

  3.   

    你的代码改成:
    unit unit1;  //unit1不用改
    interface
    ........
    implementation
    ......
    procedure abs(x:integer);
    begin
    abs:=.......;
    end;end.________________________________
    unit unit2
    interface
    ......
    implementation
    uses
      unit1;
    ....
    procedure callABS();
    var
      x,...
    begin
      x:=TForm1.abs(x);//加上这个!
    end;
    ....
    end.
      

  4.   

    对不起,好久不用Delphi,是Form1.abs(x)
      

  5.   

    unit unit1;
    interface
    ........
    procedure abs(x:integer);//加入..............
    implementation
    ......
    procedure abs(x:integer);
    begin
    abs:=.......;
    end;end.________________________________
    unit unit2
    interface
    ......
    implementation
    uses
      unit1;
    ....
    procedure callABS();
    var
      x,...
    begin
      x:=abs(x);//此处为什么调用不起来,要加别的什么说明吗?
    end;
    ....
    end.
      

  6.   

    unit unit1;
    interface
    ........
    functon abs(x:integer):integer;//加入..............
    implementation
    ......
    functon abs(x:integer):integer;
    begin
    abs:=.......;
    end;end.________________________________
    unit unit2
    interface
    ......
    implementation
    uses
      unit1;
    ....
    procedure callABS();
    var
      x,...
    begin
      x:=abs(x);//此处为什么调用不起来,要加别的什么说明吗?
    end;
    ....
    end.
      

  7.   

    再重申一遍,你所给的例子只是赋值的语句有错,
    至于在引用时是否加上单元(窗体)名,如果没
    冲突的话可以省略,不加的话,默认是最后的那
    个单元的(自己试一下吧,比在这里问更有效):
    unit unit1;
    uses unit2, unit3;
    button1.onclick事件:
    begin
      TheSameName;//结果是ShowMessage('unit3.TheSameName');
    end;
    ==================
    unit unit2;
    uses unit3;
    procedure TheSameName;
    begin
      ShowMessage('unit2.TheSameName');
    end;button1.onclick事件:
    begin
      TheSameName;//结果是ShowMessage('unit2.TheSameName');
    end;
    ==================
    unit unit3;
    procedure TheSameName;
    begin
      ShowMessage('unit3.TheSameName');
    end;
      

  8.   

    x:=Form1.abs(x);//加上这个就对了
      

  9.   

    同意楼上的各位,在public 里面声明方法原型
    然后就可以了~~~
      

  10.   

    1,unit1 的type中加入
    functonabs(x:integer):integer;forward;//
    或procedure abs......;forward;2,在unit2说明部分加入uses unit13,引用格式:unit1.abs();