Текущий архив: 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.47 MB
Время: 0.007 c