Скасувати натиснуту клавішу 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 і буде вам щастя.