![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как запретить/разрешить ввод от клавиатуры любых символов ? [D7, WinXP]
Dr.Andrew © (2008-08-14 21:29:00)Добрый вечер!
Как запретить/разрешить ввод от клавиатуры любых символов (в том числе и юникодных), например, в компоненте TMemo. Установка свойства TMemo.ReadOnly := True не подходит. Нужен или hook или иная идея. Но, с возможностью переключения, только в конкретном компоненте, а не во всех текстовых редакторах Windows, ввод символов от клавиатуры. Глобальное отключение клавиатуры тоже не подходит. Пожалуйста, небольшой пример.
Спасибо.
Loginov Dmitry (2008-08-14 22:44:00) [21]> 2. А можно это реализовать для конкретного контрола с помощью
> простейшего хука? Если можно с примером.
>
> 3. Может есть еще идеи, особенно, чтобы это работало с конкретным
> контролом ввода символов, например TMemo, с клавиатуры и
> в системах XP и Vista.
Для начала опиши цель всего этого, а-то может тебе иMemo.Enabled := Falseподойдет. Чем [1] не устраивает?
DVM (2008-08-14 22:41:00) [22]
> А можно это реализовать для конкретного контрола с помощью
> простейшего хука?
можно, только из пушки по воробьям. Примеров валом, ключевое слово для поиска WH_KEYBOARD и WH_KEYBOARD_LL
> 1. Я так понимаю, что цифры и буквенные клавиши заблокированы.
> Правильно?
Все заблокировано, ничего ты туда с клавиатуры не введешь.
> 3. Может есть еще идеи, особенно, чтобы это работало с конкретным
> контролом ввода символов, например TMemo
А я привел пример для абстрактного что ли?
Dr.Andrew (2008-08-14 22:36:00) [23]Спасибо.
1. Я так понимаю, что цифры и буквенные клавиши заблокированы. Правильно?
2. А можно это реализовать для конкретного контрола с помощью простейшего хука? Если можно с примером.
3. Может есть еще идеи, особенно, чтобы это работало с конкретным контролом ввода символов, например TMemo, с клавиатуры и в системах XP и Vista.
Спасибо еще раз.
DVM (2008-08-14 22:18:00) [24]procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
key:=#0;
end;