You want to pass one element of an array, but your procedure expects a full array. To directly answer your real question, your procedure should be defined as:
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;
Or you could do it like this:
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;
Or, to be even simpler, just don't use the procedure at all:
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;
source
share