Главная страница
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.076 c
8-1110371537
Gear99
2005-03-09 15:32
2005.07.11
DirectSound запись с микрофона и проигрывание.


14-1118226776
YurikGL
2005-06-08 14:32
2005.07.11
USB-разъем под обжимку. Как обжать?


14-1116828273
Priest
2005-05-23 10:04
2005.07.11
Кто-нибудь качал Update 3 для D2005


3-1117477869
alex-drob
2005-05-30 22:31
2005.07.11
Всегда ли нужно BDE


4-1116252281
mega
2005-05-16 18:04
2005.07.11
Текст на рабочем столе