Так вот в Windows , если нажать курсор, то как мы и ожидаем, левый верхний угол прямоугольника будет установлен именно туда , куда мы нажали. В Andoroid же левый верхний угол устанавливается где-то по левой верхней части пальца. А ожидается, что он будет установлен в центр пальца. В связи с этим вопросы.
1) X,Y -это координаты центра пальца или левой верхней его части?
2) Как получить координаты именно куда нажал центр пальца? Ведь я не знаю ни размера устройства ни размера пальца, поэтому просто прибавлять к X,Y какое-то значение, это такое себе..
Вопрос
Андрей Рулин
С помощью старших товарищей на этом форуме я научился отображать прямоугольники. Вот код, который мне подсказали.
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin FCrd := PointF(X,Y); end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Single); begin Invalidate; end; procedure TForm1.FormPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); begin Canvas.Fill.Color := TAlphaColorRec.Wheat; Canvas.FillRect(rectf(FCrd.X, FCrd.Y, FCrd.X+100, FCrd.Y+100), 0,0,[], 1); end;
Так вот в Windows , если нажать курсор, то как мы и ожидаем, левый верхний угол прямоугольника будет установлен именно туда , куда мы нажали. В Andoroid же левый верхний угол устанавливается где-то по левой верхней части пальца. А ожидается, что он будет установлен в центр пальца. В связи с этим вопросы.
1) X,Y -это координаты центра пальца или левой верхней его части?
2) Как получить координаты именно куда нажал центр пальца? Ведь я не знаю ни размера устройства ни размера пальца, поэтому просто прибавлять к X,Y какое-то значение, это такое себе..
В справке удалось нарыть только это - http://docwiki.embarcadero.com/Libraries/Sydney/en/FMX.Controls.TControl.MouseDown . Так никак не описывается поведение на планшетах.
Изменено пользователем Андрей Рулин
+картинка
Ссылка на комментарий
3 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.