Скасувати натиснуту клавішу Edit-е
Виникла необхідність обмежити операторів під час введення тексту для пошуку за БД. Визначити яка клавіша була натиснута просто елементарно, а як зробити щоб при неприпустимому значенні текст в Edit не вводився?
Відловлюєш натискання клавіші, перевіряєш, при неприпустимому значенні надаєш key := 0
кинь-но шматочок коду, все має працювати!
Ну наприклад, в OnKeyPress пишу if key
Тьху, наздогнав не OnKeyPres, а OnKeyDown
? в мене все працює
В OnKeyPress такий код і працювати не буде
Може я щось плутаю? Але за такого коду він повинен друкувати літери ABC тощо.
На мою подію OnKeyDown краще використовувати для заборони натискання функціональних та допоміжних клавіш.
Для заборони літер найкраще використовувати:
procedure TForm1.RichEdit1KeyPress(Sender: TObject; var Key: Char); begin якщо key in ["A".."Z", "a".."z", "А".."Я", "а".."я"] then key: = # 0; end;
Щоправда, цифри все одно надрукуються :).
А якщо продуманий користувач відшкодує і вставить з буфера обміну будь-який текст. Ви що заборонятимете використовувати ще й буфер обміну? Моя вам порада, після натиснення кнопки "пошук" перевіряйте чи вірний текст у полі редагування, якщо ні, то лайтеся "неприпустиме зачення".
TMaskEdit і буде вам щастя.