|
板凳
楼主 |
发表于 2019-1-2 05:34:19
|
只看该作者
在Delphi10.3下,原来的延迟时间的函数在安卓下无效果了,采用线程的方式来解决,类似如下:
procedure TFormDongHuaAnNiu.Control_MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single);
begin
TThread.CreateAnonymousThread(
procedure
begin // 以上为匿名线程的左括号
TThread.Synchronize(nil, // 线程暂停,等待主线程执行这里面的代码,执行完毕后继续执行线程内的代码
procedure
begin
X1 := X; // 记录鼠标按下时的坐标值
Y1 := Y;
Control_MouseEnter(Sender);
TControl(Sender).Position.X := TControl(Sender).Position.X + 2;
TControl(Sender).Position.Y := TControl(Sender).Position.Y + 2;
end);
sleep(50); // 延时多少毫秒
TThread.Synchronize(nil,
procedure
begin
TControl(Sender).Position.X := TControl(Sender).Position.X - 2;
TControl(Sender).Position.Y := TControl(Sender).Position.Y - 2;
end);
end).Start;
end;
|
|