Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: -0.976 c
14-1116828273
Priest
2005-05-23 10:04
2005.07.11
Кто-нибудь качал Update 3 для D2005


1-1119599734
heckfy1
2005-06-24 11:55
2005.07.11
Список принтеров


9-1112119752
new1
2005-03-29 22:09
2005.07.11
Привет! А* в 3D.Допустим есть 3-х мерный массив.Как реализовать А


14-1118735941
leonidus
2005-06-14 11:59
2005.07.11
Отзовитель кто пишет плагины для FireFox


14-1118605421
Просто Джо
2005-06-12 23:43
2005.07.11
Обработка file upload в PHP




   Наверх