![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем доброго...
В сети очень много примеров создания кнопок, едитов... У меня другая проблема: Создаю несколько панелей в компоненте ScrollBox, к последнему компоненту могу добраться спокойно. Как мне добраться например до первой (второй...) созданной панели. Я понимаю что нужно создать массив, а какой не могу догнать. |
#2
|
|||
|
|||
![]() Я тут репу почесал...
и похоже должно работать: Panels: Array [1..100] of TPanel; или Panels: Array of TPanel; Если я не прав - подправьте. |
#3
|
|||
|
|||
![]() Ну вообщето это одно и тоже только первый статический а второй динамический.
А обращаться к панелям можно разыскивая их по номарам Код:
var l : TLabel; x1 : byte; begin Repeat Inc(x1); l := TLabel(Text.FindComponent('MyLabel'+inttostr(x1))); If l = nil Then Dec(x1); Until l = nil; Что то мог напутать так как сам не особо продвинутый, но у меня так реализованно. |
#4
|
|||
|
|||
![]() а еще лучше воспользоваться компонентом TObjectList, в котором можно хранить ссылки на разные динамически созданные компоненты. Если тебе нужны только панели, то можно просто их туда пихать, а если тебе нужно хранить ссылки на разные компоненты, то тут 2 варианта
- пихать сами компоненты (ссылки, ес-но), а потом определять их тип через As и Is; - сделать маленький класс-враппер, содержащий в себе ссылку на контрол и его тип, тогда можно будет в список пихать его, и в дальнейшем пользоваться той доп. информацией, которая хранится в нем. |