2013-04-01 29 views
-4

我希望用戶創建自己的控件列表,例如TEditTCheckBox,TLabel和其他東西。但是當我必須預先定義每個控件時,我怎麼能做出另一個控件,但我不知道要定義多少個對象?如何在Delphi中動態製作多個標籤,編輯等?

+0

@David Heffernan,請注意,'TObjectList '在Delphi 2009中有很多問題(部分由修補程序解決)。 – TLama

+2

@TLama - 這是一個先發制人的評論?我沒有看到David的評論或任何地方的答案。 –

+0

@TLama - D2009中是否存在仿製藥? –

回答

2

這是你應該做的,以創建每個對象知道它的類類型:

var 
    Obj:TControl; 
begin 
    Obj := TEdit.Create(AOwner); 
    with Obj do begin 
    //Set properties here... 
    ... 
    Parent := Self; //Assuming that you're writing code in your form class. if not, use object variable pointing to your form instead of `self` 
    end; 
end; 

要儲存未知的對象,你可以使用一個動態數組,或鏈接列表,或者您甚至可以使用表格的Controls屬性。

這是你想做什麼的開始(基礎)。你有很多選擇來實現這部分應用程序。例如,您可以在表單類中使用array of TControl,使用LengthSetLength函數可以計算出用戶添加到表單中的對象數。

+0

不會'用TEdit.Create(AOwner)開始......'還能工作嗎?目前不在IDE之前...... –

+0

@Jerry:當然,但我們不會有一個指向我們的對象的指針,這可能是必要的。 – Javid