我声明了一个记录:type
TRecord=packed record
A:string[20];
B:array of array of String[20];
end;type
Form1=class(TForm)
private
FRecord:TRecord;
public
property Record:TRecord read FRecord write FRecord;
procedure First;
end;procedure TForm1.First;
begin
Record.A:='abc';
SetLength(Record.B,2,2)//问题就出在这儿了?
end;请问,我该如何初始化这个数组呀!
TRecord=packed record
A:string[20];
B:array of array of String[20];
end;type
Form1=class(TForm)
private
FRecord:TRecord;
public
property Record:TRecord read FRecord write FRecord;
procedure First;
end;procedure TForm1.First;
begin
Record.A:='abc';
SetLength(Record.B,2,2)//问题就出在这儿了?
end;请问,我该如何初始化这个数组呀!
SetLength(Record.B[0], 2);
SetLength(Record.B[1], 2);
今天遇到一个问题,调用Dll的时候传进来一个动态的数组参数,我在Dll里面定义了一个动态的数组
Type
ArrayOfString=Array of string;
Form的Publice中写了这么一个数组的属性
property YY:ArrayofString read FYY write SetYY;
Dll中执行了如下的一个过程
判断传入参数的个数
使用SetLength
SetLength(Form1.YY,大小)给YY分配内存和空间,编译器不能通过
在窗体中执行SetLength(YY,大小)同样的问题
但是我直接访问私有数据SetLength(FYY,大小)编译器就可以通过,请问怎么解决?
[Error] Unit1.pas(58): Constant object cannot be passed as var parameter