2017-02-18 2 views
-5

Есть ли способ использовать свойства компонента, созданного во время выполнения, не зная его имени? И я имею в виду, что вы уже это сделали.Как получить доступ к свойствам компонента, не зная его имени?

with TPanel.Create(self) do 
    begin 
    Name := 'Panel' + IntToStr(ComponentCount + 1); 
    Height := 50; 
    Width := 100; 
    Top := 30; 
    Left := 30; 
    Parent := self; 
    end; 
+2

Храните объекты в контейнере, как 'TList ' – whosrdaddy

ответ

7

Объявите переменную типа TPanel и сохранить ссылку на ваш компонент в этой переменной.

var 
    Panel: TPanel; 
.... 
Panel := TPanel.Create(Self); 

Затем вы можете обратиться к элементу управления с помощью этой переменной.

Вам, вероятно, потребуется удерживать переменную как поле элемента формы, или в массиве, или даже в каком-либо другом контейнере.

+0

Я имею дело с неограниченным количеством компонентов. –

+2

Затем все они не могут называться panel1. Храните их в массиве или другом контейнере, как сказано в ответе. –

+3

Это не имеет значения. Ответ тот же. –

Смежные вопросы