我有以下两个课程:
TcmTPDataPanel = class(TcmTPBasePanel)
Database: TnxDatabase;
Session: TnxSession;
private
FDataConnector: TcmTPDataConnector;
MyNxDataBase: TnxDatabase;
MyNxSession: TnxSession;
MyRefNxDataBase: TnxDatabase;
protected
procedure Disconnect; virtual; abstract;
procedure Refresh; virtual;
procedure Requery; virtual; abstract;
public
procedure Connect;
published
property DataConnector: TcmTPDataConnector read FDataConnector write
FDataConnector;
end;
TcmTPDataConnector = class(TComponent)
private
FDatabase: TnxDatabase;
FObservers: TList;
FTableForCategories: TnxTable;
FTableForItemCategoryLinks: TnxTable;
FTableForItems: TnxTable;
procedure SetTableForItemCategoryLinks(const Value: TnxTable);
protected
procedure IterateObservers;
public
constructor Create;
destructor Destroy; override;
procedure Register(Instance: TcmTPDataPanel);
procedure Unregister(Instance: TcmTPDataPanel);
published
property Database: TnxDatabase read FDatabase write FDatabase;
property TableForCategories: TnxTable read FTableForCategories write
FTableForCategories;
property TableForItemCategoryLinks: TnxTable read
FTableForItemCategoryLinks write SetTableForItemCategoryLinks;
property TableForItems: TnxTable read FTableForItems write FTableForItems;
end;
TcmDataPanel 是(第 3 代)TFrame 后代。它不是直接使用的,而是从它衍生出的多个其他复合组件。
TcmDataConnector 是一个保存这些其他组件的数据库连接信息的组件。
我正在使用 ModelMaker,并正在尝试实现观察者模式,以便在“数据连接器”更改状态时自动更新多个“数据面板”。
这是我的问题:我似乎无法解决“循环引用”问题,因为每个类在接口部分都使用另一个。将相关的“使用”引用放在“接口”部分并不能解决“未声明的标识符”问题,并且将它们放在同一个单元中也不会。现在它们在同一个单元中(我已经在单独的单元中尝试过它们,并且一起尝试过),并且我收到“未声明的标识符:TcmTPDataConnector”错误。
我怎样才能解决这个问题?
================
更新:
现在是周五晚上 9:30 晚上我所在的地方,我完全被困住了。在我发帖后几分钟,你们拯救了这一天!!(晚上!)谢谢!
伙计,我喜欢 StackOverflow ......所以我的朋友在这个疯狂的学习季节。: ) 谢谢你,谢谢你,谢谢你...