type
TA = class
b: TB;
end; TB = class
a: TA;
end;
TC = class
b: TB;
end; ============================================
提示 Undeclared identifier:'TB'
我试着分别放入两单元中,但那样就带来另个问题,提示'Circular uses',因为类定义是放在interface和 implemention 之间的。
是不是要新建一个类来解耦啊?
TA = class
b: TB;
end; TB = class
a: TA;
end;
TC = class
b: TB;
end; ============================================
提示 Undeclared identifier:'TB'
我试着分别放入两单元中,但那样就带来另个问题,提示'Circular uses',因为类定义是放在interface和 implemention 之间的。
是不是要新建一个类来解耦啊?
end;TA = class
b: TB;
end;TB = class
a: TA;
end;
你在TB的单元中引用TA单元
在TC的单元中引用TB的单元
TB=class; TA = class
b: TB;
procedure aaa;
end; TB = class
a: TA;
procedure bbb;
end; TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
aa:TA;
bb:TB;
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ TA }procedure TA.aaa;
begin
showmessage('aaa')
end;{ TB }procedure TB.bbb;
begin
showmessage('bbb')
end;procedure TForm1.Button1Click(Sender: TObject);
begin
aa.aaa;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
bb.bbb;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
bb.a.aaa;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
aa:=TA.Create;
bb:=Tb.Create;
end;