Wieso das mit Self.Cursor nicht funktioniert, kann ich Dir leider auch nicht ad hoc sagen. Und Du hast Recht, auf der sicheren Seite bist Du, wenn Du vorher den alten Cursor wegsicherst.
Delphi-Quellcode:
//im MouseDown
if Button = mbLeft then
begin
FOldCursor := Screen.Cursor;
Screen.Cursor := crSizeAll;
end;
//im MouseUp
if Button = mbLeft then
Screen.Cursor := FOldCursor;