procedure TStyledWindowBorder.MouseMove(Shift: TShiftState; X, Y: Single); var P: TPointF; Obj: IControl; SG: ISizeGrip; NewCursor: TCursor; CursorService: IFMXCursorService; begin NewCursor := crDefault; TPlatformServices.Current.SupportsPlatformService(IFMXCursorService, IInterface(CursorService)); FMousePos := PointF(X, Y); if Assigned(FCaptured) then begin if Assigned(CursorService) then begin if ((FCaptured.QueryInterface(ISizeGrip, SG) = 0) and Assigned(SG)) then CursorService.SetCursor(crSizeNWSE) else CursorService.SetCursor(FCaptured.Cursor); end; P := FCaptured.ScreenToLocal(PointF(FMousePos.X, FMousePos.Y)); FCaptured.MouseMove(Shift, P.X, P.Y); Exit; end; Obj := ObjectAtPoint(FMousePos); if Assigned(Obj) then begin SetHovered(Obj); P := Obj.ScreenToLocal(PointF(FMousePos.X, FMousePos.Y)); Obj.MouseMove(Shift, P.X, P.Y); if ((Obj.QueryInterface(ISizeGrip, SG) = 0) and Assigned(SG)) then NewCursor := crSizeNWSE else NewCursor := Obj.Cursor; end else SetHovered(nil); // set cursor if Assigned(CursorService) then CursorService.SetCursor(NewCursor); FDownPos := FMousePos; end; ....Посему - предлагаю просто получить эстетическое удовольствие.
Блог человека, который 18-ть лет программирует на Delphi. И 25 лет программирует вообще. VCL, UML, MDA, тесты. Это не "учебник", это - "заметки на полях".
суббота, 2 ноября 2013 г.
Написал бы я, что мне в этом коде не нравится, но ведь всё равно дураком назовут
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий