![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Присвоение значения свойства группе объектов [D2005, XP]
ГореПрограммер © (2006-09-28 10:02:00)Здравствуйте.
Задача в следующем:
необходимо предположим присвоить значение false свойству enabled группе объектов (в частности пунктам меню) возможно ли сделать это способом, отличным от простого перечисления:
n1.enabled:=false;
n2.enabled:=false;
n3.enabled:=false
.....
и если можно, то как ?
MsGuns (2006-09-28 12:31:00) [1]Обычно грамотно разработанный интерфейс представляет собою сгруппированныенужным (удобным, семантически близким и т.д.) образов внутри контейнеров: TPanel, TGroupBox ...
Для гибкого или контекстного управления такими контролами можно использовать общую процедуру, переключающую либо все, либо указанные некоторым образом контролы в "активное", "пассивное" либо какие-то другие состояния.
Процедура получает на входе указатель на TWinControl, служащий контрейнером (св-во Parent находящихся на нем компонент указывает на него) для визуальных контролов, "флаг" состояния и еще некоторые параметры, например, фонт, цвет и т.д. Процедура, перебирая "свои" контролы, (как справедливо указано в [1]), "ищет" у каждого соответствующее св-во (например, Enabled, Visible или Color, Font) и, если находит, присваивает ему переданное вх.параметром св-во в соответствии с "флагом".
Такая технология не только существенно повышает эффективность программинга, сокращая его сроки и повышая надежность и "объектонезависимость" кода, но и делает исходный текст кратким и наглядным.
ГореПрограммер (2006-09-28 10:22:00) [2]clickmaker
вот теперь все ясно, спасибо.
clickmaker (2006-09-28 10:21:00) [3]
> [6] ГореПрограммер (28.09.06 10:10)
ничем
Ну нету в дельфи такого понятия "группа объектов", чтоб можно было свойства махом менять.
Не устраивает - напиши класс, в котором реализуешь перечисление
ГореПрограммер (2006-09-28 10:10:00) [4]Ketmar
а чем это будет отличаться от простого перечисления ?
Ketmar (2006-09-28 10:09:00) [5]"в частности" -- см. [2].
в общем -- [3].
что ж тут неясного? бежим в цикле по всем контролам, те, которые нам нужны -- обрабатываем. остальные -- пропускаем.
ГореПрограммер (2006-09-28 10:08:00) [6]clickmaker
а каким образом с помощью meu.items[] обратиться к нескольким елементам ?
ГореПрограммер (2006-09-28 10:07:00) [7]Ketmar
если честно не увидел в справке каким образом реализовать мою задачу. Безусловно понимаю, что глаза плохие, но подскажите как ?
clickmaker (2006-09-28 10:06:00) [8]Menu.Items[]
Ketmar (2006-09-28 10:05:00) [9]Controls[], F1.