Chodzi o to, że mam sobie w okienku obiekt typu Image i po najechaniu na ten obrazek kursor zamienia się w rączkę (crHandPoint) a po opuszczeniu powraca do crDefault. W tej chwili nie mam dostępu do tego kodu, ale ogólnie chodzi o to, że w zdarzeniu MouseMove mamy warunek że dla X i Y większych od 0 oraz mniejszych od odpowiednio width i height mamy Screen.Cursor:=crHandPoint a w każdym innym przypadku Screen.Cursor:=crDefault. No i ogólnie działa tak jak powinno, ale problem w tym, że gdy się kursor przesunie nad obrazek a potem go opuści zbyt szybko, to nie powraca do formy domyślnej i już zostaje jako taka rączka, tak jakby nie dostrzegał że wyszedł poza obszar obrazka. Trudno trochę zakładać że użytkownik za każdym razem będzie ostrożnie przesuwał kursor, dlatego chciałbym wiedzieć czy Delphi daje jakąś możliwość szybszego rozpoznawania ruchu kursora?
0
3
Przekombinowałaś jakie MouseMove do takich rzeczy służy CM_MOUSEENTER i CM_MOUSELEAVE np:
type
TImage = class(ExtCtrls.TImage)
private
procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
end;
TForm1 = class(TForm)
Image1: TImage;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TImage.CMMouseEnter(var Msg: TMessage);
begin
inherited;
Screen.Cursor:= crHandPoint;
end;
procedure TImage.CMMouseLeave(var Msg: TMessage);
begin
inherited;
Screen.Cursor:= crDefault;
end;
0
Podziękował.