在Delphi中传递self作为参数

lts*_*tar 2 delphi pascal

我想将"self"作为参数传递给另一个类的方法(在不同的单元中).但是第一个类的类型在第二个类中是未知的,因为我不能将第一个单元放入第二个单元的使用部分.所以我将参数类型定义为指针,但是当我尝试从第一个类调用一个方法时,Delphi 7解析器告诉我classtyp是必需的.

那我该怎么解决这个问题呢?

bum*_*mmi 6

通过在实现部分中使类已知,您可以转换给定的引用.

unit UnitY;

interface
uses Classes;
type
    TTest=Class
       Constructor Create(AUnKnowOne:TObject);
    End;



implementation
uses UnitX;
{ TTest }

constructor TTest.Create(AUnKnowOne: TObject);
begin
    if AUnKnowOne is TClassFromUnitX then
      begin
         TClassFromUnitX(AUnKnowOne).DoSomeThing;
      end
    else
      begin
         // .... 
      end;
end;

end.
Run Code Online (Sandbox Code Playgroud)