Баг в версии 2.05
Posted: Wed Jun 23, 2010 6:56 am
Привожу код, иллюстрирующий проблему.
BDS2010, создаем проект, кладем на форму кнопку.
Пишем обработчик события Onclick и вспомогательную функцию ShowXY,
дополнительно в Private проекта создаем Buf: array[0..255] of byte;
procedure TForm1.ShowXY(X,Y: extended);
begin
ShowMessageFmt('X=%f, Y=%f',[X,Y]);
end;
procedure TForm1.Button1Click(Sender: TObject);
var i,Addr,NPoints: integer;
begin
Addr:=0;
NPoints:=4;
for i:=1 to NPoints do ShowXY(i,smallint(Buf[Addr+2*(i-1)]+Buf[Addr+2*(i-1)+1] shl 8 ));
end;
В VMP виртуализируем Button1Click, все опции по умолчанию.
После второго вызова ShowXY в цикле получаем аварийное завершение программы...
PS: если smallint меняем на word, то оно работает...
BDS2010, создаем проект, кладем на форму кнопку.
Пишем обработчик события Onclick и вспомогательную функцию ShowXY,
дополнительно в Private проекта создаем Buf: array[0..255] of byte;
procedure TForm1.ShowXY(X,Y: extended);
begin
ShowMessageFmt('X=%f, Y=%f',[X,Y]);
end;
procedure TForm1.Button1Click(Sender: TObject);
var i,Addr,NPoints: integer;
begin
Addr:=0;
NPoints:=4;
for i:=1 to NPoints do ShowXY(i,smallint(Buf[Addr+2*(i-1)]+Buf[Addr+2*(i-1)+1] shl 8 ));
end;
В VMP виртуализируем Button1Click, все опции по умолчанию.
После второго вызова ShowXY в цикле получаем аварийное завершение программы...
PS: если smallint меняем на word, то оно работает...