Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.09.28;
Скачать: CL | DM;

Вниз

Как запретить/разрешить ввод от клавиатуры любых символов ?   Найти похожие ветки 

 
Dr.Andrew   (2008-08-14 21:29) [0]

Добрый вечер!
Как запретить/разрешить ввод от клавиатуры любых символов (в том числе и юникодных), например, в компоненте TMemo. Установка свойства TMemo.ReadOnly := True не подходит. Нужен или hook или иная идея. Но, с возможностью переключения, только в конкретном компоненте, а не во всех текстовых редакторах Windows, ввод символов от клавиатуры. Глобальное отключение клавиатуры тоже не подходит. Пожалуйста, небольшой пример.
Спасибо.


 
DVM ©   (2008-08-14 22:18) [1]

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
 key:=#0;
end;


 
Dr.Andrew   (2008-08-14 22:36) [2]

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

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

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

Спасибо еще раз.


 
DVM ©   (2008-08-14 22:41) [3]


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

можно, только из пушки по воробьям. Примеров валом, ключевое слово для поиска WH_KEYBOARD и WH_KEYBOARD_LL


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

Все заблокировано, ничего ты туда с клавиатуры не введешь.


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

А я привел пример для абстрактного что ли?


 
Loginov Dmitry ©   (2008-08-14 22:44) [4]

> 2. А можно это реализовать для конкретного контрола с помощью
> простейшего хука? Если можно с примером.
>
> 3. Может есть еще идеи, особенно, чтобы это работало с конкретным
> контролом ввода символов, например TMemo, с клавиатуры и
> в системах XP и Vista.


Для начала опиши цель всего этого, а-то может тебе и Memo.Enabled := False подойдет. Чем [1] не устраивает?


 
Dr.Andrew   (2008-08-14 22:48) [5]

Да нет, просто есть два режима:

первый, редактирования, когда клавиатурный ввод в конкретный контрол должен быть включен

и второй, - просмотра, где клавиатурный ввод в конкретный контрол надо заблокировать, кстати, как и все остальные клавиши с клавиатуры (по возможности).

спасибо, просто хочу разобраться с этой задачей и всеми возможными путями ее реализации.

спасибо.


 
Loginov Dmitry ©   (2008-08-14 23:04) [6]

> первый, редактирования, когда клавиатурный ввод в конкретный
> контрол должен быть включен
>
> и второй, - просмотра, где клавиатурный ввод в конкретный
> контрол надо заблокировать, кстати, как и все остальные
> клавиши с клавиатуры (по возможности).


чем ReadOnly не мил?


 
Dr.Andrew   (2008-08-14 23:42) [7]

Спасибо за ответ, свойсто ReadOnly не годится. Хочу разобраться в этой задаче до логической и оптимального разрешения. Есть еще идеи? Спасибо


 
MsGuns ©   (2008-08-14 23:52) [8]

Задача вполне решается с помощью Enable и ReadOnly


 
{RASkov} ©   (2008-08-15 00:11) [9]

> [7] Dr.Andrew   (14.08.08 23:42)

Попробуй рассказать для чего сея затея.... Глядишь, и не все так сложно :)


 
Dr.Andrew   (2008-08-15 00:32) [10]

Я уже рассказал для какой задачи. В одном случае - редактор, во втором - просмотрщик. Вот и все. Я уже писал, что хочу глубже разобраться в этой теме и найти оптимальный вариант у Мастеров. У специалистов высшей категории. А свойства для чайников - Enable и ReadOnly - мне знакомы. Спасибо и может Мастера все же подискутируют об оптимальном способе решения данной задачи. Спасибо.


 
EvChul ©   (2008-08-15 00:41) [11]

Я, конечно, не мастер, но для всех моих задач вполне хватает Enable и ReadOnly. В очень редких случаях - хук на клаву. А автор вопроса, видимо, хочет забороть Ctrl + Alt + Del. Видимо гадость какую затеял.


 
Германн ©   (2008-08-15 01:26) [12]


> Dr.Andrew   (15.08.08 00:32) [10]
>
> Я уже рассказал для какой задачи. В одном случае - редактор,
>  во втором - просмотрщик. Вот и все.

Доп. вопрос. Что есть "просмотрщик".


 
McSimm ©   (2008-08-15 01:33) [13]


> может Мастера все же подискутируют об оптимальном способе
> решения данной задачи. Спасибо.

пока не понятно чем именно не подходит ReadOnly, трудно говорить о какой-либо оптимизации "задачи", т.к. без этого понимания -- самый оптимальный вариант для режимов просмотра/редактирования.


 
{RASkov} ©   (2008-08-15 11:51) [14]

> В очень редких случаях - хук на клаву

Да не нужны тут хуки. Зачем? ReadOnly - самое то. Хоть автор и говорит, что это не подходит, но почему не подходит, не говорит....

> [10] Dr.Andrew   (15.08.08 00:32)
> Спасибо и может Мастера все же подискутируют об оптимальном
> способе решения данной задачи. Спасибо.

Да о чем тут дискутировать? Есть задача(с твоих слов) - редактировать текст и в некоторых случаях запретить редактирование. Так вот именно для этих целей и есть ReadOnly.


 
Dr.Andrew   (2008-08-15 13:16) [15]

Спасибо всем за проявленный интерес и помощь.


 
oldman ©   (2008-08-15 13:21) [16]


> Как запретить/разрешить ввод от клавиатуры любых символов


существуют еще Copy и Paste
и существуют настырные юзеры


 
Dr.Andrew   (2008-08-15 13:22) [17]

Спасибо.


 
DVM ©   (2008-08-15 13:29) [18]


> oldman ©   (15.08.08 13:21) [16]


> существуют еще Copy и Paste

Только к клавиатуре они непосредственно не имеют отношения, кроме как вызываются горячими клавишами.


 
Игорь Шевченко ©   (2008-08-15 14:18) [19]


> А свойства для чайников - Enable и ReadOnly - мне знакомы


Вот свойства для чайников и надо использовать


 
oldman ©   (2008-08-15 14:45) [20]


> DVM ©   (15.08.08 13:29) [18]
>
> > oldman ©   (15.08.08 13:21) [16]
>
>
> > существуют еще Copy и Paste
>
> Только к клавиатуре они непосредственно не имеют отношения,
>  кроме как вызываются горячими клавишами.


Я ж писал: существуют еще настырные юзеры...
То есть, если ставить, например, [1], они все равно нагадят.
Потому - "средства для чайников"


 
Dr.Andrew   (2008-08-15 15:02) [21]

Спасибо за помощь.


 
Anatoly Podgoretsky ©   (2008-08-15 15:07) [22]

http://www.podgoretsky.com/ddp/chaos.aspx


 
Dr.Andrew   (2008-08-15 15:31) [23]

Anatoly Podgoretsky

Извините, но ссылка ошибочна! Спасибо.


 
Anatoly Podgoretsky ©   (2008-08-15 19:05) [24]

Я опоздал, ты раздумал?



Страницы: 1 вся ветка

Текущий архив: 2008.09.28;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.022 c
2-1219211615
FIL-23
2008-08-20 09:53
2008.09.28
база foxpro


15-1217925962
DoKi
2008-08-05 12:46
2008.09.28
рассчёт нормалей


2-1218740621
Alex_Storm
2008-08-14 23:03
2008.09.28
Скрыть вкладку


2-1219221619
dmitry_12_08_74
2008-08-20 12:40
2008.09.28
Как можно, имея Handle объекта, определить указатель на него


2-1219068801
dmitry_12_08_74
2008-08-18 18:13
2008.09.28
Помогите:не меняется свойство FileName в открытом диалоговом окне