不兼容的数组delphi7

时间:2015-11-11 22:40:54

标签: arrays delphi-7

我有一个字节数组和另一个字节数组数组。

type
 TByteArray = array of byte;
 TArraykearray = array of array of byte;

function TFRTConnection1.GetBytes(value: integer): TBytearray;
begin
  SetLength(Result, SizeOf(value));
  Move(value, Result[0], SizeOf(value));
end;

Function TFRTConnection1.addco(point: TPoint) : Tarraykearray;
var
 result1 : Tarraykearray;
begin
 setLength(Result1,10);
 Result1[0] := getBytes(1);
 Result1[1] := 1;
 ....
 Result := result1;
end;

当我使用Result1 [0]时:= getBytes(1);我得到不兼容的类型错误。 我不想将TArraykearray作为Tbytearray的数组,因为这是我无法访问的应用程序服务器端的数组数组。

还有其他可能吗?

1 个答案:

答案 0 :(得分:3)

您无法将TByteArray分配给array of byte,编译器会将它们视为单独的类型,即使它们内部兼容也是如此。您需要更改TArraykearray以改为使用TByteArray

type
  TByteArray = array of byte;
  TArraykearray = array of TByteArray;

否则在分配数组时你必须使用类型转换:

Function TFRTConnection1.addco(point: TPoint) : Tarraykearray;
type
  PByteArray = ^TByteArray;
var
  Result1 : TArraykearray;
begin
  SetLength(Result1,10);
  PByteArray(@Result1[0])^ := getBytes(1);
  ....
end;

BTW:Result1[1] := 1;也不会编译,因为你不能为数组分配一个整数。