Форум: "Начинающим";
Текущий архив: 2010.02.21;
Скачать: [xml.tar.bz2];
ВнизВопрос про Object Inspector и parent Найти похожие ветки
← →
cosinus (2009-12-19 14:02) [0]Столкнулся с непонятной для меня ситуацией.
Задача: пройтись по всем компонентам, расположенным на одной из панелей (частный случай), которые (судя по Object Inspector) там находятся.
На форме есть панель, на панели PageList, на Page1 расположен GroupBox, а уже на нем в свою очередь куча всяких контролов. Все создавалось в DisignTime, киданием компонентов и установкой их свойств.
В зависимости от условия, мне нужно было выставить Enabled всех Edit-ов, расположенных на GroupBox в True или False.
Обхожу все компоненты на GroupBox - пусто.
Выше на уровень - снова пусто.
Какие-то компоненты проявились только на панели, причем совершенно левые из серии "как бог на душу положит".
Правильно ли я понимаю, что то дерево, которое отображается в Object Inspector не имеет никакого отношения, к реальному положению дел - "кто чей parent"?
Если так, то возможно ли выставить это как-нибудь? кроме как создавать контролы в RunTime, указывая Parent? Или (TControl as что-нибудь).Components[i] вообще к Parent не имеет отношения?
Какая-то разруха в мозгах... Разделите мне мух от котлет, пожалуйста...
← →
Юрий Зотов © (2009-12-19 17:13) [1]Есть список Components - он отвечает за то, кто чей Owner. Если компоненты накидывались в design-time, то владельцем всех будет форма (а никакие не панели и не группбоксы).
Есть список Controls - он отвечает за то, кто чей Parent (кто на ком лежит). Вот он Вам и нужен.
for i := 0 to GroupBox1.ControlCount - 1 do
if GroupBox1.Controls[i] is TEdit then
GroupBox1.Controls[i].Enabled := false;
← →
cosinus (2009-12-20 10:56) [2]Спасибо, теперь все встало на свои места.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.02.21;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c