Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Проблема неподвижного прямоугольника в Windows 8: решение для приложений на Delphi

Delphi , Компоненты и Классы , Меню

В последнее время разработчики, использующие среду Delphi для создания приложений под Windows 8, столкнулись с неожиданной проблемой. При нажатии и удержании пальца на текстовом поле (например, на TMemo) в сенсорных экранах Windows 8, появляется прямоугольник, который должен исчезать сразу же после отпускания пальца и появления контекстного меню. Однако в приложениях, созданных с использованием VCL в Delphi, этот прямоугольник остается на экране до тех пор, пока не закроется само контекстное меню.

Причина проблемы

Delphi по-прежнему использует устаревшие события пользовательского интерфейса, не поддерживающие новые события Windows 8, такие как WM_Pointer. Это приводит к тому, что поведение контекстного меню в приложениях на Delphi отличается от стандартного поведения, наблюдаемого в других приложениях, например, в стандартном Блокноте Windows.

Поиск решения

Для решения этой проблемы было предложено несколько подходов:

  1. Проверить все свойства контролов, чтобы убедиться, что не упущена какая-либо настройка, отвечающая за событие нажатия и удержания.
  2. Попробовать перерисовать контроль перед появлением контекстного меню, используя, например, метод SetRedraw.

Подтвержденное решение

Оказалось, что проблема решается путем добавления параметра toPenTapFeedback в свойство Touch.TabletOptions компонента. Это позволяет корректно обрабатывать события касания и удержания, что приводит к исчезновению прямоугольника сразу после отпускания пальца, как это происходит в стандартных приложениях Windows 8.

Пример кода

procedure TForm1.FormCreate(Sender: TObject);
begin
  Touch.TabletOptions := Touch.TabletOptions + [toPenTapFeedback];
end;

Добавление этого кода в обработчик события FormCreate позволит решить проблему неподвижного прямоугольника в приложениях на Delphi.

Заключение

Разработчикам, столкнувшимся с этой проблемой, рекомендуется внести указанные изменения в свойства компонентов, используемых для работы с касаниями. Это позволит обеспечить корректное взаимодействие с пользовательским интерфейсом в соответствии с ожиданиями пользователей, привыкших к стандартному поведению приложений под Windows 8.

Создано по материалам из источника по ссылке.

Проблема в приложениях на Delphi под Windows 8 связана с неподвижным прямоугольником, возникающим при нажатии и удержании пальца на текстовом поле, которую можно решить, добавив определенный параметр в свойство компонента.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Меню ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-05 15:47:23/0.0058069229125977/1