开放数组的转换问题(50分)

  • 主题发起人 主题发起人 minehe
  • 开始时间 开始时间
M

minehe

Unregistered / Unconfirmed
GUEST, unregistred user!
代码段如下:
...
type
TOpenArray:array[0..32] of TVarRec;
TArgs = class
public
OA : ^TOpenArray;
OAS : Integer;
end;
...
var
l_args : TArgs;
begin
...
Format(...,Slice(l_args.OA^,l_args.OAS));
...
end;

这段代码报错,提示TOpenArray与开放数组不兼容,如果修改这段代码?
 
写完整点
 
TArgs = class
public
OA : array of TVarRec;
OAS : Integer;
end;
...
var
l_args : TArgs;
begin
...
Format(...,Slice(l_args.OA,l_args.OAS));
...
end;

 
使用的问题,语句能通过:

type
TOpenArray=array[0..32] of TVarRec;
TArgs = class
public
OA : ^TOpenArray;
OAS : Integer;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
l_args : TArgs;
begin
Format('aaa',Slice(l_args.OA^,l_args.OAS))
end;
 
你原来的定义:
OA: ^TOpenArray;
没有必要,直接定义为:
OA: array of TVarRec;
就可以了,array of ... 本来就是指针:)


 
后退
顶部