![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Действия над группой объектов [D7]
StriderMan © (2009-03-20 16:05:00)Есть несколько объектов одного класса. Допустим хранятся на них ссылки в листе.
Нужно у всех объектов вызвать один и тот же метод или поменять одинаково одно и то же свойство. Как это можно сделать не описывая перебиралку списка для каждого метода/свойства?
StriderMan (2009-03-20 16:46:00) [21]
> перебиралка будет по любому
понятно что будет, но хотелось бы чтобы не под каждый метод/свойства а одна на всё. ну максимум две-три :)
Медвежонок Пятачок (2009-03-20 16:45:00) [22]если свойства паблишед, то через имена свойств.
если не только паблишед, то элементарно.
процедура, в ней цикл, перебирающий список и вызывающая колбак функцию переданную параметром.
procedure EnumMyComponentListForSomePurpose(AList : TList; ACallBack : TMyCallback);
И все.
Цикл один.
StriderMan (2009-03-20 16:42:00) [23]
> еще раз
пример из жизни: редактор компонентов. выделили 10 кнопок и поставили им всем Left := 10; Или Height := 25; или Сказали им всем BringToFront;
Как такое сделать чтобы НЕ писать под каждое свойство/метод конструкцию типа
for i := 0 to ComponentCount - 1 do
(Components[1] as TMyControl).MyProperty := MyValue;
немо2 (2009-03-20 16:36:00) [24]есть же возможность ввести св-во одинаковое для всех объектов класса.
или чего путаю?
Медвежонок Пятачок (2009-03-20 16:25:00) [25]а никак.
перебиралка будет по любому.
Palladin (2009-03-20 16:15:00) [26]еще раз