Распознование раскладки клавиатуры, русский\англиский |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Распознование раскладки клавиатуры, русский\англиский |
Atreides |
24.02.2011 8:55
Сообщение
#1
|
Ветеран Броуновского Движения Группа: Пользователи Сообщений: 281 Пол: Мужской Реальное имя: Сергей Репутация: 0 |
Исходя из ТЗ приходится загонять пользователей в жесткие рамки ввода текста... Задача следующего характера, пользователи могут вводить только русские символы, как бы организовать выдачу сообщения, что в данный момент у них раскладка английская или введены цифры? Смотрел по свойствам Edit - OnKeyPress или OnChange, единственное что пришло в голову это туп перебирать все буквы так:
Код begin if Edit2.Text='Q' then begin ShowMessage('Смените раскладку клавиатуры на русскоязычную'); end; end; Может есть способ проще, а то данный способ после двух неверных вводом почему не хочет дальше ругаться... P.s. По свойствам Edit все символы будут большими буквами CharCase = ecUpperCase -------------------- Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
|
-Volvo- |
24.02.2011 10:31
Сообщение
#2
|
Гость |
На самом деле, задача сложнее, чем просто отследить, какая на данный момент раскладка. Просто раскладка - это вот так:
if LOWORD(GetKeyboardLayout(GetWindowThreadProcessId(GetForegroundWindow, nil))) = $0419 , только тебе это ничего не даст. Надо еще и контролировать Ctrl+C снаружи -> Ctrl+V в твое приложение. Я бы сделал как-то вот так: uses ..., ClipBrd;Вот что-то в этом духе... |
Atreides |
24.02.2011 14:03
Сообщение
#3
|
Ветеран Броуновского Движения Группа: Пользователи Сообщений: 281 Пол: Мужской Реальное имя: Сергей Репутация: 0 |
Огромное спасибо! И отдельное спасибо за Копи-Паст, а то я как-то не подумал об этом )))
-------------------- Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
|
Текстовая версия | 11.05.2024 16:07 |