![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Доброго времени суток! Понадобилось в обработчике Edit`а OnKeyDown при выполнении определенных условий запретить ввод в него текста.(сделал я это через Key := 0) ,но по какой - то причине он все равно текст вводит( KeyPreview у формы стоит True). Пробовал так делать даже совсем без условий: тупо напрямую
Код:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin key := 0; end; |
|
#2
|
|||
|
|||
|
Код:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin If key = #48 then Edit1.Enabled:= false; //key = VK_NUMPAD0 для нуля на цифровой клавиатуре end; Последний раз редактировалось nixel, 24.03.2012 в 17:03. |
|
#3
|
||||
|
||||
|
Посмотри на событие OnChange или OnKeyPress.
|
|
#4
|
|||
|
|||
|
nixel, мне не Edit заблочить надо, если нажмут 0, а сделать так чтобы при наборе текста он не набирался в Edit. По идее это должно работаь с коммандой Key := 0; Поскольку key - то var параметр и разработчик Edit`а предусмотрел, что если key = 0, тогда считать что ничего не было нажато. Но у меня это не проходит почему - то. Видимо я в чем - то ошибся.
YVitaliy, Цитата:
|
|
#5
|
||||
|
||||
|
Так бы и сразу сказал. Для "залочки" есть свойство ReadOnly.
В OnKeyDown ставишь ReadOnly:=true, а в OnKeyUp - ReadOnly:=false; |
| Этот пользователь сказал Спасибо YVitaliy за это полезное сообщение: | ||
Sahan911 (24.03.2012)
| ||
|
#6
|
|||
|
|||
|
О, спасибо, помогло. Я знал про это свойство, но тут его применить что - то недогадался.
|