我有一个字节数组和另一个字节数组数组。
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的数组,因为这是我无法访问的应用程序服务器端的数组数组。
还有其他可能吗?
答案 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;
也不会编译,因为你不能为数组分配一个整数。