Почему может не работать кнопка Del?!

  • Автор темы Автор темы WishMaster
  • Дата начала Дата начала
W

WishMaster

Пишу на C++ Builder 6. На одной из форм программы (которая MDI) во всех Edit'ах почему то не срабатывает кнопка Del. Никак не могу понять, почему. Все остальные кнопки (в том числе Backspace) работают и набираются нормально. Del же не генерирует событие нажатия кнопки, я не то что блокировать его могу, я его и отловить то не могу. Раньше она работала и на этой форме (на других формах работает и сейчас), но установить, после чего перестала не могу, т.к. очень долго не обращал на это внимания. Есть какие-нить мысли? Ее что, можно как-нить заблокировать? :-\
 
какой здесь еще можно код? :) На нажатие del не срабатывает ни один обработчик, так что код отсутсвует ;)
 
=)
Она работала на этой форме, т.к. в версии программы годичной давности можна в эдите удалять символы делитом. Но я за год столько накрутил, что установить от чего дел перестал работать не представляется возможным ;) А код чего вылаживать я не знаю. Ну скажем код эдита:

Код:
void __fastcall TMainForm::RzEditFrequencyKeyPress(TObject *Sender,
char &Key)
{
if (Key != 8 && Key != 13 && Key != 48 && Key != 49 && Key != 50 && Key != 51 && Key != 52 && Key != 53 && Key != 54 && Key != 55 && Key != 56 && Key != 57) Key = 0;
if (Key == 13) RzEditFrequencyExit(Sender);
}

Разрешается нажатие только бекспейса, энтера и цифр. Delete не генерирует событие OnKeyPress, поэтому тут его предусматривать смысла нет (при нажатии на него эта функция не срабатывает). На других формах есть едиты один в один с таким кодом КейПресс, и там при нажатии на дел можна удалять символы, а на этой форме - нет :)
Мистика и только :)
 
Создаю новый проект, кладу на форму Edit1, прописываю:

Код:
void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
{
MessageBox(NULL, "Нажата клавиша.", "", MB_OK);
}

При нажатии в эдите реагирует на буквы, цифры, бекспейс, ентер и т.д. На Delete молчит, как и на стрелки, Alt, Ctrl, Shift.

А у Вас как?
 
Ну вы как маленькие, право же...
Волшебный F1 сказал(а):
Keys that don't correspond to an ASCII Char value (Shift or F1, for example) don't generate an OnKeyPress event.
KeyDown реагирует почти на всё.
 
теперь бы понять почему автор именно KeyPress показал
Потому что он [автор] коварен :rolleyes: Буду разбираться, я просто думал, может какая нить общая есть настройка для формы что ли. Вроде бы все прозрачно, а дел не срабатывает.
 
может какая нить общая есть настройка для формы

Ну вообще-то у формы есть свойство KeyPreview. Если оно установлено, то сначала вызываются обработчики OnKey... формы, а уже затем (если не запретить их в обработчике формы) конкретного компонента.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab