Hello, !
You wrote on Thu, 04 Dec 2003 08:54:44 GMT:
> Здравствуйте, Janex, Вы писали:
J>> Вот токое дело — сделал компонент у которого имеется один Property
J>> токого же типа как он сам. Тоесть ложиш на форму два компонента и у
J>> делаеш что первии указывает на другого.
J>> Ну типо как кладёш один dataset и 4 datasources, и всем datasource-м
J>> указываеш один dataset.
J>> Вот немогу понять как в коде самого компонента можно реализовать
J>> токое, чтоб я из етого главного мог наити ети все которие указывает
J>> на его ...
J>> Как ето сделать ???
> Например кусок обработчика формы. А саму форму можно получить через
> свойство Parent или лучше Owner.
> > for I := 0 to (ComponentCount - 1) do begin if (Component[I] is
> TMyComponent) then begin //
> end;
> end;
>
Так, возможно, не пойдет, т.к. автор не сказал как будут использоваться компоненты(а если верить Рею Конопке, то ни один автор компонентов не может этого предположить %) ):
1. Owner = nil и/или Parent = nil;
2. Компоненты на разных формах.
Как вариант сделать у компонента скрытое свойство — "прилинкованные объекты" типа TList и при создании линка добавлять ссылку в этот список (ведь класс-то один, а значит есть доступ к private полям), соответственно при смене линка или разрушении объекта — удалять
Возможно для этого придется создать предка какого нибудь с виртуальными методами AddLink(AMyComponent : TMyComponent) и RemoveLink(AMyComponent : TMyComponent) если все не заработает так.
А еще лучше посмотреть реализацию TDataSource, ведь он же вычисляет как-то наличие DataSet %).
PS Автору топика: научись, пожалуйста, пользоваться спелчекером, а то читать трудно.
With best regards, Alexander Diouzshev-Maltsev.
Posted via RSDN NNTP Server 1.8 beta