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

Тема в разделе "Borland C++ Builder & Kylix", создана пользователем WishMaster, 4 авг 2008.

  1. WishMaster

    WishMaster Гость

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

    WishMaster Гость

    какой здесь еще можно код? :) На нажатие del не срабатывает ни один обработчик, так что код отсутсвует ;)
     
  3. WishMaster

    WishMaster Гость

    =)
    Она работала на этой форме, т.к. в версии программы годичной давности можна в эдите удалять символы делитом. Но я за год столько накрутил, что установить от чего дел перестал работать не представляется возможным ;) А код чего вылаживать я не знаю. Ну скажем код эдита:

    Код (Text):
    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, поэтому тут его предусматривать смысла нет (при нажатии на него эта функция не срабатывает). На других формах есть едиты один в один с таким кодом КейПресс, и там при нажатии на дел можна удалять символы, а на этой форме - нет :)
    Мистика и только :)
     
  4. WishMaster

    WishMaster Гость

    Можете проверить :)
     
  5. WishMaster

    WishMaster Гость

    Создаю новый проект, кладу на форму Edit1, прописываю:

    Код (Text):
    void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)
    {
    MessageBox(NULL, "Нажата клавиша.", "", MB_OK);
    }
    При нажатии в эдите реагирует на буквы, цифры, бекспейс, ентер и т.д. На Delete молчит, как и на стрелки, Alt, Ctrl, Shift.

    А у Вас как?
     
  6. Yason

    Yason Гость

    Ну вы как маленькие, право же...
    KeyDown реагирует почти на всё.
     
  7. WishMaster

    WishMaster Гость

    Потому что он [автор] коварен :rolleyes: Буду разбираться, я просто думал, может какая нить общая есть настройка для формы что ли. Вроде бы все прозрачно, а дел не срабатывает.
     
  8. Silver Wind

    Silver Wind Гость

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

Поделиться этой страницей