我试过了,放在Implements后面是不行的,他会说ClassB未定义,因为ClassA的定义是这样的
ClassA=class
  public
    theB:classB;
..........
ClassB的定义也类似
ClassB=class
  public
     theA:classA;
...............

解决方案 »

  1.   

    但是将两个类放在一起并不违背面向对象的原则呀。我们在一个单元里实现某个类的方法时,前面总须带该类的名称,这就是为了在一个单元里写几个类。但是即便是写在一个单元里,要实现循环引用的话,也得显进行某个类的前置声明:
    Type 
      TClassA=class;
      TClassB=Class
         ...
         Classa:TClassa;
         ...
       End;
       
       TClassA=Class
          ...
          Classb:TClassb;
          ...
       End;