Отмяна на натиснат клавиш Edit-e
Имаше нужда от ограничаване на операторите при въвеждане на текст за търсене в базата данни. Определянето кой клавиш е натиснат е просто елементарно, но как да го направите така, че ако стойността е невалидна, текстът да не се въвежда в Редактиране?
Хващате натискане на клавиш, проверявате го и ако стойността е невалидна, присвоявате key := 0
Хвърлете част от кода, всичко трябва да работи!
Ами например в OnKeyPress пиша if key
Уф, хванат не в OnKeyPres, а в OnKeyDown
? всичко работи
В OnKeyPress такъв код също няма да работи.
Може би бъркам нещо? Но с такъв код не трябва да отпечатва буквите ABC и т.н.
Според мен събитието OnKeyDown се използва най-добре за деактивиране на натискането на функционални и спомагателни клавиши.
За забрана на писма е най-добре да използвате:
procedure TForm1.RichEdit1KeyPress(Sender: TObject; var Key: Char); започнете ако въведете ["A".."Z", "a".."z", "A".."Z", "a"..."z"] след това ключ:=#0; край;
Вярно, номерата тепърва ще се разпечатват :).
И ако внимателен потребител вземе и постави текст от клипборда. Ще забраните ли използването и на клипборда? Моят съвет към вас, след като натиснете бутона "търсене", проверете дали текстът в полето за редактиране е правилен, ако не, тогава кълнете се "невалидна стойност".
TMaskEdit и ще си доволен.