在单元文件(与窗体有关)中声明函数和过程时,既可在接口Interface部分的Private段和Public段声明,又可在实现Implementation部分声明,请问在这三个位置声明有何差异?

解决方案 »

  1.   

    Interface部分的Private段和Public段声明为类的专有成员,在外单元作用时需要使用限定符
      

  2.   

    在接口Interface部分:函数在本单元全局可见,如果其他单元Use这个单元的话,函数也可见,Private段和Public段声明只是类的封装,如果申明在类中,那么就是方法,可见性是一样的,除了调用时要加上类名。
    Implementation部分声明:函数只在在本单元全局可见,其他单元不可见。
      

  3.   

    如tsst 所说的,Interface部分的Private段和Public段声明为类的专有成员
    在其他单元里调用时要这样:在unit1里声明的函数function aa:integer;在unit2里调用的方法
    首先在unit2里引用unit1,然后
    var bb:integer;
    ...
    unit2.bb:=unit1.form1.aa;
    ...而在Implementation部分声明的函数可以直接使用,但也得引用该单元
    如,在unit2里
    bb:=unit1.aa;
      

  4.   

    interface:其他单元都可以调用该变量;
    Implementation:本单元的全局变量;
    Private和Public:类的私有成员共有成员,和前面两种情况是不一样的,他们都放在堆里。
      

  5.   

    juliens(星星球愛思纯^_^) 已经回答完了:
    在接口Interface部分:函数在本单元全局可见,如果其他单元Use这个单元的话,函数也可见,Private段和Public段声明只是类的封装,如果申明在类中,那么就是方法,可见性是一样的,除了调用时要加上类名。
    Implementation部分声明:函数只在在本单元全局可见,其他单元不可见。
      

  6.   

    谢谢各位热心人的帮助,由于分数有限,所以只送给田Sir和juliens(星星球愛思纯^_^)两位.