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)
Комментариев нет:
Отправить комментарий