![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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; - сделать маленький класс-враппер, содержащий в себе ссылку на контрол и его тип, тогда можно будет в список пихать его, и в дальнейшем пользоваться той доп. информацией, которая хранится в нем. |