【发布时间】:2014-11-12 00:47:35
【问题描述】:
是否可以一次分配相同类型的值?
在我的例子中,我有一个从 TComponent 派生的自定义组件,我称之为 TBox。
TBox 中有 Left 属性。
我有一个 TBox 数组,是否可以将属性 Left 分配给所有 不使用循环同时使用 TBox 组件?
使用 for 循环设置 Left 值:
var BoxArray: array [0..9] of TBox;
i: integer;
begin
for i := 0 to 9 do
begin
BoxArray[i] := TBox.Create(nil);
BoxArray[i].Left := 0;
end;
end;
我想在没有 for 循环或任何类型的循环的情况下执行上述操作。 我想将新值应用到 Left 而不遍历每个 TBox 但只需立即将新值应用于所有这些。
【问题讨论】:
-
立即是什么意思?如果它的意思是我认为的意思,那么你会失望的。如果您不说
TBox是什么,我们将很难回答您的问题。如果我们知道为什么要避免循环,这也可能会有所帮助。人们还想知道如何在没有某种形式的迭代的情况下多次调用Random。从本质上讲,这个问题似乎暗示了某处的一些误解。我想你需要澄清一下。 -
好的,抱歉。我不知道我是否应该同时使用这个词。是的。这听起来更好。同时地。 TBox 只是一个虚拟图形组件。无需深入了解它。这是一些OpenGL的东西。我以值 Random 为例。也可能是 BoxArray[i].Left:=0;
-
您不想告诉我们细节?美好的。这是否意味着我们可以回答并省略所有细节?你高兴我写一个回答说,你不能这样做,但不要担心细节,你不需要知道。我非常怀疑。当然,您可以看到分配相同值和为每个项目分配不同值之间的区别,该值是函数调用的结果。你怎么能在没有迭代的情况下多次调用
Random?我还是不明白你为什么害怕 10 次迭代循环。 -
TBox的细节对问题很重要。
-
@xaid - GetLeft 应该是 Left 属性的 getter。如果你一次分配所有的Left,你会不会遇到同样的问题?以后不用再看Lefts了?
标签: arrays delphi properties assign