![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Доброго времени суток! Понадобилось в обработчике Edit`а OnKeyDown при выполнении определенных условий запретить ввод в него текста.(сделал я это через Key := 0) ,но по какой - то причине он все равно текст вводит( KeyPreview у формы стоит True). Пробовал так делать даже совсем без условий: тупо напрямую
Код:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin key := 0; end; Код:
ShowMessage('HelloWorld!'); ![]() |
#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, Цитата:
Код:
ShowMessage('HelloWorld!'); ![]() |
#5
|
||||
|
||||
![]() Так бы и сразу сказал. Для "залочки" есть свойство ReadOnly.
В OnKeyDown ставишь ReadOnly:=true, а в OnKeyUp - ReadOnly:=false; |
Этот пользователь сказал Спасибо YVitaliy за это полезное сообщение: | ||
Sahan911 (24.03.2012)
|
#6
|
|||
|
|||
![]() О, спасибо, помогло. Я знал про это свойство, но тут его применить что - то недогадался.
Код:
ShowMessage('HelloWorld!'); ![]() |