Function TFrm_Price.Make_Degree(aFrom,aTo,bFrom,bTo:String;Var aDegree:Array of String):Boolean;//-------根据用户提供的光度范围来生成光度列表
var
  Tmp_Degree:Array[0..80,0..16] of String;
  h,i:integer;
begin
  for h:=0 to Round(StrToFloat(Sign(aTo))-StrToFloat(Sign(aFrom))/0.25) do
    begin
      for i:=0 to Round(StrToFloat(Sign(bTo))-StrToFloat(Sign(bFrom))/0.25) do
        begin
          Tmp_Degree[h,i]:=Format('%.2f',[StrToFloat(aFrom)+h*0.25])+Format('%.2f',[StrToFloat(bFrom)+i*0.25]);
          aDegree:=Tmp_Degree;  //------这儿报错!说类型不对!
          Result:=True;
        end;
    end;
end;
怎么赋给aDegree!

解决方案 »

  1.   

    Tmp_Degree:Array[0..80,0..16] of String;
    aDegree:Array of String
    可能是两个数组的大小不一样
      

  2.   

    to jiayodo(爱上一条鱼) 
    这个我知道!但是如果这样写的话,会报错的!
    Function TFrm_Price.Make_Degree(aFrom,aTo,bFrom,bTo:String;Var aDegree:Array[0..80,0..16] of String):Boolean;//
      

  3.   

    要这样该:
    1、定义一个类型:
       Type   TArrayType=Array[0..80,0..16] of String;
    2、在函数的参数声明中用TArrayType代替Array[0..80,0..16] of String;
        Function TFrm_Price.Make_Degree(aFrom,aTo,bFrom,bTo:String;Var aDegree:TArrayType):Boolean;
    3、函数内部的Tmp_Degree也说明为TArrayType类型
        Tmp_Degree:TArrayType;