Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Controls на панели(TPanel) [D6, WinXP]


Oleg2 ©   (2005-06-16 14:08:00) 

Добрый день уважаемые мастера.

Вопрос к вам такой:
Вот скажем если на форме расположены какие-то компоненты,
то, чтобы обратиться к свойству каждого компонента можно
воспользоваться свойством формы Components к примеру
Form1.Components[index].свойство, а вот если компоненты
находятся на панели (TPanel) можно ли както перебрать их
скажем в цикле for? Есть ли такая возможность?

Оговорюсь сразу, FindComponent не подходит - имена различаются.


Юрий Зотов   (2005-06-16 14:48:00) [1]

> Гаврила ©   (16.06.05 14:40) [9]

Гы... слышал когда-то... лет около 10 назад...
:о)


Гаврила   (2005-06-16 14:40:00) [2]


>  [3] Юрий Зотов ©


> Это вещи совершенно разные (Owner отвечает за уничтожение
> подчиненных компонентов, Parent - за их расположение и отрисовку)


Юр ,а ты кстати в курсе, что Parent также отвечает за уничтожение?
:-))


Oleg2   (2005-06-16 14:33:00) [3]

Ещё раз всем ответившим господам - большое спасибо.


Oleg2   (2005-06-16 14:32:00) [4]

Прошу прощения,
Юрию Зотову отдельное Большое спасибо.


Oleg2   (2005-06-16 14:31:00) [5]

Юрию зотову отдельное Большое спасибо.


Ega23   (2005-06-16 14:31:00) [6]


for i:=0 to Panel1.ControlCount-1 do
 if (Panel1.Controls[i] is TEdit) then
  TEdit(Panel1.Controls[i]).Text:='Ля-ля-ля';


А вообще - см. Юрий Зотов ©   (16.06.05 14:23) [3]


Oleg2   (2005-06-16 14:29:00) [7]

Да они относятся именно к форме, Гаврила прав.  

Господа, огромное вам спасибо.


Юрий Зотов   (2005-06-16 14:23:00) [8]

> Oleg2

У визуальных компонентов (контролов) есть владелец (Owner) и родитель (Parent). Это вещи совершенно разные (Owner отвечает за уничтожение подчиненных компонентов, Parent - за их расположение и отрисовку). Список Componentsсодержит те компоненты, Owner'омкоторых является данный компонент, а список Controls- компоненты, Parent'омкоторых является данный компонент. Если контрол был размещен в design-time на панели (или GroupBox'е и пр.), то эта панель (или GroupBox и пр.) является его Parent'ом, но его Owner'ом все равно будет форма. Поэтому цикл for по списку Components формы(а не панели!) переберет всекомпоненты, размещенные на этой форме в design-time.

Где бы эти компоненты ни находились - хоть на панелях, хоть еще где угодно.


Гаврила   (2005-06-16 14:18:00) [9]

Насколько я помню, все таки если компонент положен мышкой в дизайн-тайм на панель, то овенром у него все равно будет форма, и он попадет в список Components именно формы.
Другое дело Controls - да, они будут присутствовать в списке Controls панели, на которой находятся


Digitman   (2005-06-16 14:11:00) [10]

точно так же

Panel.Components[index].свойство


Наверх

Титульная страница Поиск, карта сайта Написать письмо