Невозможно получить мое приложение, чтобы обнаружить кнопку Удалить - PullRequest
0 голосов
/ 27 января 2020

Я заранее прошу прощения за этот расплывчатый вопрос, но может ли кто-нибудь дать мне указатель на эту проблему?

Клавиша удаления не работает как обычно в моем приложении. Например, клавиша «Удалить» не действует в окне редактирования (т. е. она не удаляет выделенный текст), но «Shift» Delete работает. Это, кажется, имеет место во всем приложении. Я отключил все keypreviews и события OnKey, если они вызывали его, но проблема не устранена.

Кто-нибудь может подсказать, где я могу найти проблему?

Запуск Windows 10 Delphi 10.3.3

1 Ответ

6 голосов
/ 27 января 2020

Если это происходит только в этом конкретном приложении, вероятно, у вас есть TActionList или TActionManager с действием, использующим Delete в качестве его ярлыка, или простой элемент меню с таким ярлыком.

Например, у вас может быть меню Edit с элементом Clear, использующим в качестве ярлыка Delete:

Screenshot of an Edit menu with a Clear menu item, having Delete as its shortcut

Тогда это действие или пункт меню будут реагировать на Delete, не позволяя сфокусированному элементу управления делать свое дело.

Этот тип ошибки на удивление распространен. Например, в Delphi IDE у вас есть поле редактирования над редактором, показывающее вам текущий класс:

Screenshot of the Delphi IDE's class edit box

Если вы выберете это текст и нажмите Ctrl + C, вы ожидаете, что он окажется в буфере обмена. Но нет! Вместо этого, выбранный текст в редакторе кода (если есть) копируется, даже если редактор кода не имеет фокус клавиатуры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...