| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Послать нажатие символьных клавиш |
| Автор: Данкинг 21.3.2010, 11:57 | ||||||
Есть код из ДРКБ, который имитирует нажатие клавиши:
Работаем так:
Но! Если нужно послать символ из верхнего регистра, то ничего не происходит:
Вопрос: как послать в RichEdit нажатие клавиши вроде : ( ) $ ? Иными словами, как именно нажать клавишу <4>, а не имитировать нажатие символа "4" ? |
| Автор: chip_and_dayl 21.3.2010, 12:25 | ||
Добавлено через 41 секунду В параметрах ф-ции все написано |
| Автор: Данкинг 21.3.2010, 12:39 |
Да, с параметрами-то я разобрался. Теперь понял, в чём была ошибка: у меня изначально посылалось не "9", а "(", потому и не работало. Вопрос решён. |
| Автор: Данкинг 22.3.2010, 00:40 |
| Так, вопрос всё же не до конца решён. |
| Автор: chip_and_dayl 22.3.2010, 11:33 | ||||||||
Выводит собачку.
Хотя ф-ция странная, если ей передать символ "а" в таком виде
То результат 1 А если
То результат "а" |
| Автор: Данкинг 22.3.2010, 11:41 |
| chip_and_dayl, а 50 - это что за код? Думал, что ASCII, но у собачки 64, а не 50. Странная, но я лучше не нашёл. |
| Автор: chip_and_dayl 22.3.2010, 11:50 |
| Ну, я там еще передаю нажатие Шифта |
| Автор: Данкинг 22.3.2010, 12:04 |
| Ну хорошо, а как узнать, какой нужен код для всех этих <>/ в сочетании с шифтом? Если знать, то нажатие нескольких этих клавиш я могу и вручную прописать в программе, что делать ещё. |
| Автор: chip_and_dayl 22.3.2010, 13:32 |
| Данкинг К сожалению ничего сказать не могу. Кстати, а зачем это все!?! |
| Автор: Данкинг 22.3.2010, 15:21 |
Чтобы посылать символы в RichEdit, а зачем ещё? |
| Автор: chip_and_dayl 22.3.2010, 22:22 |
Мне кажется можно и проще туда заслать |
| Автор: Данкинг 22.3.2010, 22:48 |
| Может, и можно, об этом я ещё не думал. |
| Автор: Keeper89 23.3.2010, 02:20 | ||
Можно еще так попробовать (опять не дает мне форум прикрепить архив
З.Ы. Твой пример я глянуть не могу, там пакет скинов, которого у меня нет ) |
| Автор: Keeper89 23.3.2010, 15:46 | ||
Необязательно, можно вставлять в Едит буквы в зависимости от нажатого шифта (проверять в LabelClick через GetKeyState). |
| Автор: Данкинг 23.3.2010, 17:51 | ||
Не понял, а как это с .Caption связать? |
| Автор: Keeper89 24.3.2010, 00:27 | ||
Например так:
По идее можно было бы вообще накидать на форме виртуальную клавиатуру с учетом всех символов |
| Автор: Данкинг 24.3.2010, 00:38 | ||
Попробовал сейчас. Работает, но не со всеми армянскими буквами.
Ну так это можно и в "ворде" набирать с таким же успехом. |
| Автор: Keeper89 24.3.2010, 00:40 |
Не, я имею ввиду только строчные, а прописные ставить в зависимости от шифта. |
| Автор: Данкинг 24.3.2010, 00:58 |
| Ладно, в общем, тема ещё раз закрыта, всем ещё раз спасибо. |
| Автор: former 24.3.2010, 09:14 |
| Данкинг, а может в Tag-ах Lable-ов хранить коды символов? Например, сделать двумерный массив констант (в первой строке символ, во-второй - код) и создавать динамически Lable-ы, заполняя из этого массива свойства Caption и Tag. |
| Автор: Данкинг 24.3.2010, 11:42 |
Для этого сначала ещё надо определить, какому армянскому символу соответствует какой латинский символ, и ничего не перепутать. |
| Автор: former 24.3.2010, 13:01 | ||
Добавлено @ 13:11 Данкинг, один раз сделаешь и все. Его (массив) можно даже в файле с юникодом хранить. Захочешь другой язык использовать, просто поменяешь файл. А количество создаваемых Lable-ов при этом будет изменяться динамически, в зависимости от размера массива, а не фиксировано. |