У меня есть два следующих класса:
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 - потомок TFrame (3-го поколения). Он не используется напрямую, а несколько других составных компонентов происходят от него.
TcmDataConnector - это компонент, который содержит информацию о подключении к базе данных для этих других компонентов.
Я использую ModelMaker и пытаюсь реализовать шаблон Observer, чтобы несколько «панелей данных» могли автоматически обновляться всякий раз, когда «Data Connector» меняет состояние.
Вот моя проблема: я не могу обойти проблему «круговой ссылки», так как каждый класс использует другой в разделе Интерфейс. Размещение связанной ссылки «использует» в разделе «Интерфейс» не устраняет проблему «необъявленный идентификатор», и размещение их обоих в одном и том же модуле также не позволяет. Прямо сейчас они находятся в одном модуле (я пробовал их в отдельных модулях и вместе), и я получаю ошибку «Необъявленный идентификатор: TcmTPDataConnector».
Как я могу обойти это?
================
UPDATE:
Это вечер пятницы в 9:30 вечера, где я нахожусь, и я был полностью застрял. Всего через МИНУТ после моего поста, вы, люди, спасли день !! (ночь!) СПАСИБО !!
Чувак, я люблю StackOverflow .... ТАК, мой друг в этом сумасшедшем учебном сезоне. :) Спасибо, спасибо, спасибо ...