2015-03-24 65 views
0

创建组件我如何能够在不变量德尔福 - 在运行时

for i := 0 to x do 
    lHTTP[i] := TIdHTTP.Create(nil); 

是否有可能宣布它的名称声明在运行时的变量在运行时创建组件?

+2

如果您不存储对组件的引用,那么您将如何引用它?这里的背景是什么? – 2015-03-24 21:33:35

+0

什么阻止您正确使用您在此提供的代码?我看起来很好。 – 2015-03-24 22:09:42

+0

“在运行时声明一个变量”正是你的代码已经做的。但不要指望用这种方式来引用它的名字。 – 2015-03-24 22:36:00

回答

1

不管怎样,你的组件都必须声明。它看起来像你想创建一个组件数组,所以你可以声明组件作为数组的成员,然后完全按照你的例子创建它们。

var 
    lHTTP: array of TIdHTTP; 

当然,您需要在创建第一个组件之前设置数组长度,例如,

setlength(lHTTP, 10); 
+3

或者,更好的是,使用通用列表 - “TObjectList ”。 – 2015-03-24 23:40:47

+2

如果没有关于上下文的更多信息,这是否是“更好”是不可能的。没有这个上下文,关于通用的TObjectList与数组的所有可以说的是它是一个*不同的替代方法。 – Deltics 2015-03-25 02:55:27