2015-03-24 117 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