setlength(),只是设置数组大小,不能设置数组下标吧。var waver:array of byte;setlength(waver,1024);
那么delphi是否有其它办法来表述vb的ReDim waver(-110600 To 110600) As Byte?
var wavebuf: array of byte; //全局动态数组 procedure TForm1.Scanp(const de: integer); begin // SetLength(wavebuf,110600); //这样写后边会子界超出下标范围,此处能否套用VB的该语句? ... end;
vb 里定义的是 -110600 到 110600,所以实际上是110600*2大小的数组 你写的SetLength(wavebuf,110600);当然不够长了 应该这样 var wavebuf: array of byte; //全局动态数组 begin SetLength(wavebuf,110600*2);
wavebuf: array of byte; //全局动态数组
procedure TForm1.Scanp(const de: integer);
begin
// SetLength(wavebuf,110600); //这样写后边会子界超出下标范围,此处能否套用VB的该语句?
...
end;
你写的SetLength(wavebuf,110600);当然不够长了
应该这样
var
wavebuf: array of byte; //全局动态数组
begin
SetLength(wavebuf,110600*2);