Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2008, 21:27   #1
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
Сообщение Как запретить/разрешить ввод от клавиатуры любых символов (в том числе и юникодных)?

Добрый вечер!
Как запретить/разрешить ввод от клавиатуры любых символов (в том числе и юникодных), например, в компоненте TMemo. Установка свойства TMemo.ReadOnly := True не подходит. Нужен или hook или иная идея. Но, с возможностью переключения, только в конкретном компоненте, а не во всех текстовых редакторах Windows, ввод символов от клавиатуры. Глобальное отключение клавиатуры тоже не подходит. Пожалуйста, небольшой пример.
Спасибо.
SkAndrew вне форума Ответить с цитированием
Старый 14.08.2008, 21:59   #2
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию

Код:
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
  if key <> #8 then
  begin //позволить удаление знаков клавишей 'Back Space'
    case Key of
      '0'..'9': key := key;//если нажата цифра, то ничего не делаем
    else
      Key := #0; //"погасить" все остальные клавиши
    end;
  end;
end;
В хуках не силен.

Последний раз редактировалось NikLik; 14.08.2008 в 22:52.
NikLik вне форума Ответить с цитированием
Старый 14.08.2008, 22:36   #3
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
Сообщение

Спасибо.
1. Я так понимаю, что цифры разрешено вводить с клавиатуры, а буквенные клавиши заблокированы. Правильно?

2. А можно это реализовать для конкретного контрола с помощью простейшего хука? Если можно с примером.

3. Может есть еще идеи, особенно, чтобы это работало с конкретным контролом ввода символов, например TMemo, с клавиатуры и в системах XP и Vista.

Спасибо еще раз.
SkAndrew вне форума Ответить с цитированием
Старый 15.08.2008, 09:17   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

для любого контрола у которого есть события onkey*
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 15.08.2008, 13:15   #5
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию

А с хуком есть идеи? Как это можно реализовать чере хук? Спасибо.
SkAndrew вне форума Ответить с цитированием
Старый 15.08.2008, 13:27   #6
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Какова цель использования хуков для перехвата сообщений собственного приложения ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 15.08.2008, 14:13   #7
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию

Желание протсо найти самый оптимальный вариант решения задачи. прописать событие KeyPress для контрола - это единственное решение? Спасибо.
SkAndrew вне форума Ответить с цитированием
Старый 15.08.2008, 14:24   #8
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию

Нет, это не единственное решение. Но-- на мой взгляд, оптимальное.

Последний раз редактировалось NikLik; 15.08.2008 в 15:21.
NikLik вне форума Ответить с цитированием
Старый 15.08.2008, 15:30   #9
SkAndrew
Форумчанин
 
Регистрация: 05.04.2008
Сообщений: 244
По умолчанию

Спасибо, все я понял.
SkAndrew вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как исправить компонент TCoolTrayIcon для корректного выведения юникодных символов? SkAndrew Компоненты Delphi 14 20.08.2008 12:55
Ввод чисел с клавиатуры SAVIK Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 19 26.05.2008 12:54
ввод данных с клавиатуры juden Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 07.05.2008 18:05
Разрешить ввод только определеных клавиш serres Общие вопросы Delphi 3 10.12.2007 20:08
ввод нестандартных символов Freedom Общие вопросы Delphi 10 16.11.2006 17:56