如何在Delphi 7中的OnMouseMove事件中移动组件时减少CPU使用率?

Pie*_*ert 6 delphi components delphi-7 cpu-usage

在Delphi 7应用程序中,我想跟随鼠标移动组件.我正在做这样的事情:

procedure MyComponent.MouseMove(Sender: TObject;Shift: TShiftState; X, Y: Integer);
begin
  AnotherComponent.Top := X;
  AnotherComponent.Left := Y;
end;
Run Code Online (Sandbox Code Playgroud)

当我移动鼠标时,主核心的CPU使用率在最近的PC上达到100%.

在这种情况下,有什么想法或滴答来减少CPU使用率?

Pie*_*ert 4

最后我改变了我的代码:

procedure MyComponent.MouseMove(Sender: TObject;Shift: TShiftState; X, Y: Integer);
begin
  if GetTickCount-LastMoveTick>50 then begin
    AnotherComponent.Top := Y;
    AnotherComponent.Left := X;
    LastMoveTick := GetTickCount;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

非常容易实现(添加了 2 行),没有计时器,对我来说效果很好......