delphi - 如何将数组的单个元素传递给过程?

标签 delphi

示例

procedure TForm1.ButtonClick(Sender: TObject);
var x:integer;
begin
   SetLength(MyArray,10)
   for x:=0 to 9 do FillWithRandomNumbers(MyArray[x]);
end;

Procedure FillWithRandomNumbers(var MyArray: Array of double);
begin
  MyArray:=Random; //<-I have no idea what to do here :(
end;

正如您所看到的,我正在尝试将单个元素传递给过程,以便在指定的数组单元上执行某些任务。例如,过程 FillWithRandomNumbers 应采用 MyArray[2] 并用随机数填充此单元格。

最佳答案

您想要传递单个数组元素,但您的过程需要一个完整的数组。要直接回答您的实际问题,您的程序应定义为:

Procedure FillWithRandomNumber(var Value: double);  
begin
  Value:= Random;
end;

procedure TForm1.ButtonClick(Sender: TObject);
var x:integer;
begin
   SetLength(MyArray,10)
   for x:=0 to 9 do FillWithRandomNumber(MyArray[x]);
end;

或者你可以这样做:

procedure TForm1.ButtonClick(Sender: TObject);
begin
   SetLength(MyArray, 10);
   FillWithRandomNumbers(MyArray);
end;

Procedure FillWithRandomNumbers(var SomeArray: Array of double);
var
  X: Integer;
begin
  for X := Low(SomeArray) to High(SomeArray) do begin
    SomeArray[X] := Random;
  end;
end;

或者更简单,根本不使用过程:

procedure TForm1.ButtonClick(Sender: TObject);
var
  X: Integer;
begin
  SetLength(MyArray, 10);
  for X := 0 to High(Array) do begin
    MyArray[X]:= Random;
  end;
end;

关于delphi - 如何将数组的单个元素传递给过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38773598/

相关文章:

android - 在 TListView 上设置分组

delphi - 无尽的进度条?

delphi - 未找到 TThread.Queue 过载

delphi - DLL 集合在另一个指定文件夹中?

Delphi TTrayIcon BalloonFlags 自定义图标

delphi - 如何知道(以代码形式)在Delphi编写的程序的界面中某些字符是否正确显示(或不正确)

delphi - Delphi 11.1 FMX 关闭时 TGPUObjectsPool 内存泄漏

delphi - CreateProcess、PowerShell 和 WaitForSingleObject

delphi - 使用 LiveBindings 监控列表

delphi - 如何干净地中止 Delphi 程序?