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

Вниз

Отменить нажатую клавишу Edit-е   Найти похожие ветки 

 
off ©   (2003-05-07 16:26) [0]

Возникла необходимость ограничить операторов при вводе текста для поиска по БД. Определить какая клавиша была нажата просто элементарно,а вот как сделать чтобы при недопустимом значении текст в Edit не вводился?


 
Lexer ©   (2003-05-07 16:29) [1]

Отлавливаешь нажатие клавиши, проверяешь, при недопустимом значении присваиваешь key := 0


 
off ©   (2003-05-07 16:31) [2]


> Lexer © (07.05.03 16:29)
> Отлавливаешь нажатие клавиши, проверяешь, при недопустимом
> значении присваиваешь key := 0

Пробовал буквы все равно печатает


 
Lexer ©   (2003-05-07 16:33) [3]

кинь-ка кусочек кода, все должно работать!


 
off ©   (2003-05-07 16:36) [4]

Ну например в OnKeyPress пишу if key<100 then key:=0;


 
Lexer ©   (2003-05-07 16:37) [5]

Попробуй OnKeyDown


 
off ©   (2003-05-07 16:38) [6]

Тьфу, нагнал не в OnKeyPres, а OnKeyDown


 
Lexer ©   (2003-05-07 16:39) [7]

? у меня все работает


 
off ©   (2003-05-07 16:40) [8]

В OnKeyPress такой код и работать-то не будет


 
off ©   (2003-05-07 16:42) [9]

Может я что-то путаю? Но при таком коде он не должен печатать буквы ABC и т.д.


 
off ©   (2003-05-07 16:45) [10]

???


 
pusrg ©   (2003-05-07 17:01) [11]

По моему событие OnKeyDown лучше использовать для запрета нажатия функциональных и вспомогательных клавиш.

Для запрета букв лучше всего использовать:


procedure TForm1.RichEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if key in ["A".."Z", "a".."z", "А".."Я", "а".."я"] then key:=#0;
end;


Правда цифры все равно напечатаются :).


 
Proton ©   (2003-05-07 18:20) [12]

А если продуманный пользователь возмет и вставит из буфера обмена какой ни будь текст. Вы что будете запрещять использывать еще и буфер обмена?
Мой вам совет, после нажати кнопки "поиск" проверяйте верный ли текст в поле редактирования, если нет, то ругайтесь "недопустимое зачение".


 
VAleksey ©   (2003-05-07 18:23) [13]

TMaskEdit
и будет вам счастье.


 
off ©   (2003-05-08 06:27) [14]


> Proton © (07.05.03 18:20)
> А если продуманный пользователь возмет и вставит из буфера
> обмена какой ни будь текст

А я и не собирался бороться с продуманными пользователями (вредителями),я лишь хотел помочь невнимательным операторам.
Да и вообще с вопросом на форуме я можно сказать поторопился, для нахождения правильного ответа всего то понадобилось наконец-то пообедать и немного отдохнуть.
После чего я пришел примерно к такому решению:
в OnKeyPress пишу if key>#0 then key:=#0;
Спасибо Lexer, Proton, pusrg, VAleksey!



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

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

Наверх




Память: 0.5 MB
Время: 0.012 c
1-59668
Lamerr
2003-05-07 09:22
2003.05.19
Хранение табличных данных в файлах


3-59615
Dimaz-z
2003-04-28 20:36
2003.05.19
DBGrid & Scroll


1-59728
Viktor
2003-05-05 18:55
2003.05.19
Cannot make a visible window modal.


14-59866
SergeN
2003-04-29 07:45
2003.05.19
Трактористы и комбайнёры.


3-59536
sapsi
2003-04-25 13:22
2003.05.19
рисунок на dbgridtitle