有沒有一種方法,以填補使用的東西德爾福陣列狀其他方式將項目添加到一個數組
array = array('this','that','and uh'); // php
array = ['this','that','and uh']; // javascript
或者,如果有沒有,也許你可以給我一個提示什麼,我試圖做:
我有這個TButtons數組。我在數組中添加了一些按鈕,這對用戶應該是可見的。使用這個數組的方法,我可以很容易地使用循環來設置他們的可見性屬性。
有沒有一種方法,以填補使用的東西德爾福陣列狀其他方式將項目添加到一個數組
array = array('this','that','and uh'); // php
array = ['this','that','and uh']; // javascript
或者,如果有沒有,也許你可以給我一個提示什麼,我試圖做:
我有這個TButtons數組。我在數組中添加了一些按鈕,這對用戶應該是可見的。使用這個數組的方法,我可以很容易地使用循環來設置他們的可見性屬性。
使用動態數組和適當的Delphi版本,您可以使用array constructor。
myArray := TArray<string>.Create('this', 'that', 'and uh');
如果要創建按鈕,然後數組它是這麼寫的:
buttons := TArray<TButton>.Create(btn1, btn2, btn3);
然後到按鍵陣列上迭代:
for button in buttons do
DoSomething(button);
我不是確定它引入了什麼版本,但在Delphi的最新版本中,您可以使用這樣的替代語法:
type
TStringArray = array of string;
procedure Test;
var stringArray: TStringArray;
begin
stringArray := TStringArray.Create('this','that','and uh');
end;
它是在Delphi 7之後引入的。我沒有安裝Delphi 2005或2006來測試,但是這在Delphi 2007中按預期工作。 – 2012-04-02 19:15:04
您可以使用動態數組是這樣的:
type
TMyButtonArray = array of TButton;
procedure TForm2.Foo;
var
MyButtonArray: TMyButtonArray;
I: Integer;
begin
MyButtonArray := TMyButtonArray.Create(Button1, Button2 {...});
for I := 0 to High(MyButtonArray) do
ShowMessage(MyButtonArray[I].Caption);
end;
雖然你需要一個現代化的德爾福版本在一條語句分配的整個動態數組,你真的可以用任何德爾福版本構建任何你想要的動態數組。
SetLength(buttons, 3);
buttons[0] := btn1;
buttons[1] := btn2;
buttons[2] := btn3;
+1,因爲你不配合downvote。 – boileau 2012-04-02 19:05:27
而不是使用數組,我會使用TList
來代替。它仍然爲您提供了類似數組的語法,用於通過其[]
運算符訪問列表元素,但列表本身是由RTL爲您動態管理的,因爲項目被添加/刪除。
非常感謝!這段代碼當然很好很乾淨 – Martin 2012-04-02 18:35:10