Содержание материала

Возможно ли создание массива компонентов? Для показа статуса я использую набор LED-компонентов и хотел бы иметь к ним доступ, используя массив.

 Прежде всего необходимо объявить массив:

 

Code:

{10 элементов компонентного типа TLed}

LED : array[1..10] of TLed;

 При необходимости динамического создания LED-компонентов организуйте цикл, пример которого мы приводим ниже: 

Code:

for counter := 1to10do

begin

LED

:= TLED.Create;

LED

.top := ...

LED

.Left := ...

LED

.Parent := Mainform; {что-то типа этого}

end;

 

Если компоненты уже присутствуют на форме (в режиме проектирования), сделайте их элементами массива, например так:

 

Code:

leds := 0;

for counter := 0to Form.Componentcount do

begin

if (components

is TLED) then

begin

inc(leds);

LED[leds] := TLED(components

);

end

end;

 

Тем не менее у нас получился массив со случайным расположением LED-компонентов. Я предлагаю назначить свойству Tag каждого LED-компонента порядковый номер его расположения в массиве, а затем заполнить массив, используя это свойство:

 

Code:

for counter := 0to Form.Componentcount do

begin

if (components

is TLED) then

begin

LED[Component

.tag] := TLED(components
);

end

end;

 Если вам нужен двухмерный массив, то для формирования индекса понадобится другая хитрость, например, хранение в свойстве Hint информации о времени создания компонентов.

https://delphiworld.narod.ru/

DelphiWorld 6.0

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить