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

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

  1. WishMaster

    WishMaster Гость

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

    WishMaster Гость

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

    WishMaster Гость

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

    Код:
    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 Гость

    Репутация:
    0
    Можете проверить :)
     
  5. WishMaster

    WishMaster Гость

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

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

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

    Yason Гость

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

    WishMaster Гость

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

    Silver Wind Гость

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

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