Форум: "Основная";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];
ВнизОбщие соображения о межкомпонентной привязке изменений свойств Найти похожие ветки
← →
Юрий Зотов (M) (2002-02-15 11:46) [4]Если я правильно понял задачу, то сделал бы примерно так.
Пишем общий юнит, в котором создаем список рассылки:
interface
var
NotifyList: TList;
implementation
initialization
NotifyList := TList.Create;
finalization
NotifyList.Free
end.
В этом же юните пишем общий предок для всех Ваших TGraphicControl"ов.
constructor TMyGraphicControl.Create(...);
begin
inherited;
NotifyList.Add(Self)
end;
destructor TMyGraphicControl.Destroy;
begin
NotifyList.Remove(Self);
inherited
end;
procedure TMyGraphicControl.NotifyAll(сделанное_изменение);
var
i: integer;
begin
for i := 0 to NotifyList.Count - 1 do
if NotifyList[i] <> Self then
TMyGraphicControl(NotifyList[i]).ListNotification(Self, сделанное_изменение)
end;
procedure TMyGraphicControl.ListNotification(Sender: TMyGraphicControl; AChange: Tсделанное_изменение));
begin
// Здесь выполняем нужный анализ и делаем все остальное.
end;
Вот и все. Теперь, чтобы уведомить других о своем изменении, любой Ваш контрол просто вызывает метод NotifyAll из любого места своего кода и передает ему <сделанное_изменение>.
Если же общий предок Вас не устраивает, то всю ту же самую функциональность надо реализовать в отдельном объекте, экземпляр которого создается в каждом Вашем контроле и вся работа идет через него.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.03.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c