Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.11;
Скачать: CL | DM;

Вниз

Controls на панели(TPanel)   Найти похожие ветки 

 
Oleg2   (2005-06-16 14:08) [0]

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

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

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


 
Digitman ©   (2005-06-16 14:11) [1]

точно так же

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


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

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


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

> Oleg2

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

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


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

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

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


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

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


 
Ega23 ©   (2005-06-16 14:31) [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:32) [7]

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


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

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


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


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


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


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


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

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

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



Страницы: 1 вся ветка

Текущий архив: 2005.07.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.044 c
4-1115813704
Zloy
2005-05-11 16:15
2005.07.11
Форма поверх других окон


9-1111931801
VolanD666
2005-03-27 17:56
2005.07.11
Пальма


14-1118242101
ДимаСпб
2005-06-08 18:48
2005.07.11
Восстановление файлов


4-1115811710
MooSE
2005-05-11 15:41
2005.07.11
Чтение BMP-файла


14-1118586740
ПЛОВ
2005-06-12 18:32
2005.07.11
О безопастности мобильных телефонов