我试图以Delphi的VCL形式返回一个扩展数组。守则如下:
function Calc_Er(
n: Integer;
RadioGroup3.ItemIndex : Boolean;
K1, K2 : Extended;
factor1, factor2, p, hh, ten, r : Array of Real;
Pa: extended ) : Array of Extended;
begin
if RadioGroup3.ItemIndex = 0 then
begin
if hh[n] < factor1[n] then
begin
Er[n] := K2 * (K1 + p[n]);
end
else if (hh[n] < factor2[n]) and (hh[n] > factor1[n]) then
begin
Er_stack := K2 * (K1 + p[n]);
Er[n] := (h / 100 + hh[n]) / ((h / 100 / Er_stack[n]) + hh[n] * (ten[n] * h / r[n] + Pa) / Sqr(p + ten[n] * h / r[n] + Pa));
end
else
begin
Er[n] := Sqr(p[n] + Pa + ten[n] * h / r[n]) / (ten[n] * h / r + Pa);
end;
end
else
begin
Er[n] := K2 * (K1 + p[n]);
end;
end;它将RadioGroup3显示为“未声明标识符”或“缺失参数类型”,尽管我在整个代码中都使用过它。我无法理解这个错误。请看一看!
发布于 2014-06-16 22:29:51
一般来说,我了解到您从来不想使用构造“数组.”在参数列表或函数的返回类型中。
首先声明类似的内容:
type
TExtArray = array of extended;
TRealArray = array of real;然后用这些代替“扩展数组”和“实数组”。
您还需要对动态数组调用SetLength,包括结果。
正如其他人所提到的,"RadioGroup3.ItemIndex“不能用作函数中的参数,不管它是否正确键入。只需传递一个整数值。
发布于 2014-06-16 23:02:12
David的回答基本上是正确的,但我应该指出,如果这是Delphi,您应该将其声明为TArray<extended>。这样就可以节省今后各种兼容性问题。
https://stackoverflow.com/questions/24252791
复制相似问题