我有以下两类:
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是保存用于这些其它组分数据库连接信息的组件。
我使用的MM中,并想实现一个Observer模式,使多个“数据面板”可自动更新每当“数据连接”改变状态。
这里是我的问题:我似乎无法避开“循环refernece”的问题,因为每个类的接口部分使用其他。 把在接口部分相关的“使用”引用不清理“未申报的标识”的问题,并把他们都在同一个单位确实没有。 现在他们都在同一单位(我尝试过不同的装置,并一起),我也得到了“未声明的标识符:TcmTPDataConnector”的错误。
我怎样才能解决这个问题?
================
更新:
这是星期五晚上在下午9:30我在哪里,我是完全卡住。 短短几分钟内我的帖子后,你的人化险为夷! (夜!)谢谢!
男人,我爱StackOverflow的....所以我的朋友在这个学习般的疯狂季节。 : ) 谢谢你,谢谢你,谢谢你...