- Код: Выделить всё
var
Form1: TForm1;
mmResult : integer;
...
procedure TimeCallBack(uTimerID, uMsg: UINT; dwUser, dw1, dw2: DWORD);stdcall;
var px1, py1, px2, py2 : integer;
begin
px1:=random(100);
py1:=random(100);
px2:=random(100);
py2:=random(100);
Form1.Image1.Canvas.Brush.Color:=RGB(random(255),random(255),random(255));
Form1.Image1.Canvas.Rectangle(px1,py1,px2,py2);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
mmResult := TimeSetEvent(10,0, @TimeCallBack, 0, TIME_PERIODIC);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.Image1.Canvas.Rectangle(0,0,100,100);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
TimeKillEvent(mmResult);
end;
При переносе этого кода на Lazarus внешне все проходит без ошибок, но при запуске на исполнение программа самопроизвольно вырубается спустя несколько секунд (время может быть разным от 1 до 50 сек.). Проверил на Delphi - все работает идеально. В чем загвоздка?
Lazarus 0.9.30 & FPC 2.4.2