在 Delphi 2007 中,在鼠标移动事件中,我尝试使用以下命令更改鼠标光标:
procedure TFr_Board_Display.PaintBox_Proxy_BoardMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
if left_mouse_button_down then begin
if some_condition then begin
Cursor := crDrag;
end
else begin
Cursor := crNoDrop;
end;
end
else begin
if some_other_condition then begin
Cursor := crHandPoint;
end
else begin
Cursor := crDefault;
end;
end;
end;
例如。但是,当按下鼠标左键并移动鼠标时,光标不会变为 crDrag 或 crNoDrop。代码被执行(例如Cursor := crDrag;)但光标没有改变。当鼠标左键向上时,我移动鼠标,光标改变没有问题。
(我最初尝试使用一些拖放事件和属性,但无法让一切按我想要的方式工作。)
编辑:阐明了所需的行为和格式化的代码。
编辑:谢谢你,Gamecat,但我希望鼠标左键按下时光标会改变,而鼠标移动时光标应该在 crDrag 和 crNoDrop 之间来回改变。