Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.11;
Скачать: CL | DM;

Вниз

многочисленные Children   Найти похожие ветки 

 
Creative   (2006-05-02 17:13) [0]

Есть экземпляр класса А и экземпляры классов B, C, D. А связан с осталными отношением Parent-child (А - зparent, B,C,D - children). Допустим при обращении к А, нужночтобы все его дети (независимо от того, сколько их  какого они класса) совершали одну и туже аналогичную процедуру (например рисовали себя) и при этом хочется делать это автоматом для всех детей. Как это грамотно сделать? Программа пишется на winAPI, поэтому использовать TList, добавлять в него каждого новогго ребенка и потом гонять цикл кажется не получается (или я не права)?


 
Джо ©   (2006-05-02 17:38) [1]

Не вижу, чем использование TList (или TObjectList) может помешать писать программу на WinAPI. Не вижу также, почему нельзя реализовать собственный аналог TList.


 
Джо ©   (2006-05-02 17:39) [2]

Ну, на худой конец, если оба предыдущих варианта почему-то не подходят, можно задействовать для хранения динамические массивы.


 
Рамиль ©   (2006-05-02 17:41) [3]


> Программа пишется на winAPI, поэтому использовать TList,
>  добавлять в него каждого новогго ребенка и потом гонять
> цикл кажется не получается (или я не права)?

А что мешает реализовать список? Или использовать массив.


 
Джо ©   (2006-05-02 18:15) [4]

И вообще, перечитал вопрос еще раз и понял, что ничего не понял :)
Может, в данном случае лучше регистрировать какой-то, общий для всех, обработчик события?


 
Джо ©   (2006-05-02 18:25) [5]

Пока автора нету, позанимаюсь домыслами :) В смысле реализации — не задействовать ли тут фабрику объектов? Удобство в том, что занесение созданных объектов в единый список будет централизованным.


 
Jeer ©   (2006-05-02 18:30) [6]

Джо ©   (02.05.06 18:15) [4]

так public-метод и так виден и будет выполняться для всех child, если не перекрыт.


 
Jeer ©   (2006-05-02 18:33) [7]

А если надо из экземпляра А выполнялись аналогичные методы для child - то обработчики, как сказано.


 
Юрий Зотов ©   (2006-05-02 19:14) [8]

Каждый из объектов, который хочет, чтобы какой-то его метод выполнялся автоматически, где-то себя при своем создании регистрирует (где угодно - в списке, в массиве, в другом объекте и т.п.). И тогда остается только пройти по этому регистрационному списку и для каждого объекта в нем вызвать этот метод. Так как все объекты порождены от общего предка, то имя метода, который нужно вызвать заранее известно, так что никаких проблем.


 
evvcom ©   (2006-05-03 13:18) [9]

Что-то в [0] я не увидел, чтобы отношения parent-child относились именно к классовой наследственности. Посему остается вопрос, что подразумевает автор под "отношениями parent-child"?


 
Creative   (2006-05-03 17:09) [10]

Хм, извините за беспокойство, может быть я и правда неправильно построила вопрос. Задача была проста: создать несколько окон с помощью winAPI и на каждом из них разместить самодельные Control`ы разных классов - их я и назвала Child`ами, например кнопки вперемешку с полями ввода. Список нужен был для того, чтобы  все они дружно отрисовывались в тот момент когда их родительское окно становилось активным. Так как юнит Classes не использовался, у меня было затруднение - какую найти замену TList`у.
Но я таки сделала независимых от VCL класс, аналогичный классу TList и потом сделала именно так, как сказал Юрий Зотов :-)
Большое спасибо за советы, в следующий раз постараюсь высказываться более понятно.



Страницы: 1 вся ветка

Текущий архив: 2006.06.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.04 c
15-1147774196
kaif
2006-05-16 14:09
2006.06.11
Возможна ли дружба между женщиной и мужчиной?


2-1148374554
Ironman83
2006-05-23 12:55
2006.06.11
Динамическое создание TEdit ов


1-1146100720
vidiv
2006-04-27 05:18
2006.06.11
Как быстро экспортировать RichEdit в свой формат?


9-1131219429
Bogdan1024
2005-11-05 22:37
2006.06.11
DoCollision


5-1133435396
S_T_E_P_A_N___
2005-12-01 14:09
2006.06.11
Разработка экспертов