有没有办法用
之类的东西填充Delphi数组array = array('this','that','and uh'); // php
array = ['this','that','and uh']; // javascript
或者如果没有,也许你可以给我一个关于我正在尝试做什么的提示:
我有这个TButton阵列。我在数组中添加了一些按钮,这些按钮应该对用户可见。使用这种数组方法,我可以轻松地使用循环来设置它们的可见性属性。
答案 0 :(得分:5)
使用动态数组和适当的现代版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);
答案 1 :(得分:5)
我不确定它的引入版本是什么,但是在最近的Delphi版本中,您已经能够使用这样的替代语法:
type
TStringArray = array of string;
procedure Test;
var stringArray: TStringArray;
begin
stringArray := TStringArray.Create('this','that','and uh');
end;
答案 2 :(得分:4)
您可以使用如下动态数组:
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;
答案 3 :(得分:2)
我会使用TList
而不是使用数组。它仍然通过其[]
运算符为您提供了类似于数组的语法来访问列表元素,但是当您添加/删除项目时,列表本身由RTL动态管理。
答案 4 :(得分:1)
虽然你需要一个现代的Delphi版本来在一个语句中分配一个完整的动态数组,你可以真正使用任何 Delphi版本来构建包含你想要的任何东西的动态数组
SetLength(buttons, 3);
buttons[0] := btn1;
buttons[1] := btn2;
buttons[2] := btn3;