我用delphi 作了一个过程 其中的参数 是一个动态数组,类型是我定义的纪录类型。这样我在过程内
重新建立了和这个参数 一样的 动态数组 结果不兼容 你们怎么解决的。
procedure CalSgl(SNum : array of spoint; var Op :OPoint ; caltype : Boolean);
var
sglnum : array of spoint
begin
sglnum := copy(snum , pst , ifoo - pst);//这里替是不兼容类型
..............................
end;
end.
重新建立了和这个参数 一样的 动态数组 结果不兼容 你们怎么解决的。
procedure CalSgl(SNum : array of spoint; var Op :OPoint ; caltype : Boolean);
var
sglnum : array of spoint
begin
sglnum := copy(snum , pst , ifoo - pst);//这里替是不兼容类型
..............................
end;
end.
要拷贝记录copy(snum )就可以了
sglnum := copy(snum , pst , ifoo - pst);//可以拷贝数组的一部分
我怎样才能 把SNum数组总的部分纪录考给sglnum呢
我参数 是 array of spoint 定义的变量 sglnum 也是 array of spoint 啊 怎的 就不兼容了哦
我用pointer 坐参数 不知道可行不?
TArrayOfspoint=array of spoint;procedure CalSgl(SNum : TArrayOfspoint; var Op :OPoint ; caltype : Boolean);
var
sglnum : TArrayOfspoint;
begin
sglnum := copy(snum , pst , ifoo - pst);//
..............................
end;
end.
sglnum := snum ;
我刚刚也试了一下
procedure CalSgl(SNum : pointer; var Op :OPoint ; caltype : Boolean);
var
temp ,sglnum : TArrayOfspoint;
begin
temp := SNum;
sglnum := copy(temp , pst , ifoo - pst);//
..............................
end;
end.
也能够通过了,还是你的好 方便简洁 用pointer 还不知道会不会 有什么错呢!看来我的基础太差,还要加把劲,谢谢了!截贴了 谢谢大家了。