如果你在OnMouseDown中设置鼠标光标并在OnMouseUp中重置它,任何工作正常:
procedure TForm4.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X,Y: Integer);
begin
Cursor := crCross;
end;
procedure TForm4.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X,Y: Integer);
begin
Cursor := crDefault; // Or you can restore a saved cursor.
end;
如果希望鼠标移动时鼠标光标作出反应,请使用以下命令:
procedure TForm4.FormMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
if ssLeft in Shift then begin
if X<100 then
Screen.Cursor := crCross
else
Screen.Cursor := crHourGlass;
end else
Screen.Cursor := crDefault; // Or you can restore a saved cursor.
end;
procedure TForm4.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X,Y: Integer);
begin
Screen.Cursor := crDefault; // Or you can restore a saved cursor.
end;
需要MouseUp,否则如果光标悬停在控件上方,光标将不会变回.
一定要到处使用Screen.Cursor.