Форум: "Основная";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];
Внизмногочисленные 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.012 c