Интерфейсы
Модераторы: m0p3e, edward_K, Модераторы
Интерфейсы
Добрый день!
Есть интерфейс с атрибутами doAccept и ecsClose. В этом интерфейсе есть три поля ввода и две кнопки "Формировать" (cmOk) и "Отмена" (cmCancel).
Какие события я должна обработать в обработчике событий?
Понятно, что я должна обработать события для кнопок: cmOk и cmCancel.
Но т.к. у интерфейса указан атрибут doAccept, следовательно этот интерфейс может быть закрыт по нажатию кнопки ENTER. Следовательно мне нужно обработать нажатие этой кнопки. Причем, если ENTER нажали на поле ввода, то должен произойти переход на следующее поле ввода. Если ENTER нажали на кнопке "Формировать", то надо будет дальше формировать отчет, а если нажали ENTER на кнопке "Отмена", то нужно прервать формирование отчета.
Аналогично, т.к. у интерфейса указан атрибут escClose, следовательно этот интерфейс может быть закрыт по нажатию кнопки ESC. Следовательно мне нужно обработать нажатие этой кнопки.
Правильно я вообще мыслю??? Или можно все это сделать гораздо проще? Или для данного интерфейса не имеет смысла ставить атрибуты doAccept и ecsClose???
Спасибо, Всем!
Есть интерфейс с атрибутами doAccept и ecsClose. В этом интерфейсе есть три поля ввода и две кнопки "Формировать" (cmOk) и "Отмена" (cmCancel).
Какие события я должна обработать в обработчике событий?
Понятно, что я должна обработать события для кнопок: cmOk и cmCancel.
Но т.к. у интерфейса указан атрибут doAccept, следовательно этот интерфейс может быть закрыт по нажатию кнопки ENTER. Следовательно мне нужно обработать нажатие этой кнопки. Причем, если ENTER нажали на поле ввода, то должен произойти переход на следующее поле ввода. Если ENTER нажали на кнопке "Формировать", то надо будет дальше формировать отчет, а если нажали ENTER на кнопке "Отмена", то нужно прервать формирование отчета.
Аналогично, т.к. у интерфейса указан атрибут escClose, следовательно этот интерфейс может быть закрыт по нажатию кнопки ESC. Следовательно мне нужно обработать нажатие этой кнопки.
Правильно я вообще мыслю??? Или можно все это сделать гораздо проще? Или для данного интерфейса не имеет смысла ставить атрибуты doAccept и ecsClose???
Спасибо, Всем!
Спасибо, edward_K и Алексей! Но до конца я так и не могу понять...
default - указывается для кнопки по умолчанию (из доки). Это же не говорит о том, что будет перехват ENTER.
Или я чего-то не понимаю????
Вопрос собственно в том, что кнопка ENTER может быть нажата как на кнопке "Формировать", так и на кнопке "Отмена" (установили фокус, например по TAB, и нажали ENTER). Событие в обоих случаях будет cmDefault. Правильно??? Следовательно мне надо разобрать это событие: либо выполнять дальше, либо прерываем. Так? или нет?
не понятна логика возникновения событий...
default - указывается для кнопки по умолчанию (из доки). Это же не говорит о том, что будет перехват ENTER.
Или я чего-то не понимаю????
Вопрос собственно в том, что кнопка ENTER может быть нажата как на кнопке "Формировать", так и на кнопке "Отмена" (установили фокус, например по TAB, и нажали ENTER). Событие в обоих случаях будет cmDefault. Правильно??? Следовательно мне надо разобрать это событие: либо выполнять дальше, либо прерываем. Так? или нет?
не понятна логика возникновения событий...
-
- Местный житель
- Сообщения: 1846
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
- Контактная информация:
Еще раз из доки - "cmDefault: нажатие ВВОДА в диалоговом окне или интерфейсе". То есть это событие порождает любое нажатие Enter в интерфейсе. А кнопку Вы можете нажать и без enter.....hope писал(а): default - указывается для кнопки по умолчанию (из доки). Это же не говорит о том, что будет перехват ENTER.
Обрабатывайте свои кнопочные события и все )
Извиняюсь, что туплю, но не понимаю логики...
У меня есть интерфейс. Этот интерфейс имеет параметр doAccept. Это значит, что интерфейс будет закрываться по нажатию ENTER. Правильно?
Играет ли какую-то роль: где будет нажата ENTER?
В интерфейсе есть поля ввода. И мне не нужно, чтобы при нажатии ENTER в полях ввода интерфейс закрывался.
А еще есть две кнопки. При нажатии на них ENTER интерфейс должен закрываться. Но при нажатии ENTER на одной кнопке, я должна дальше формировать отчет, а при нажатии ENTER на другой кнопке - должна прервать формирование отчета.
В связи с этим вопрос: чтобы реализовать выше описанное, надо ли мне анализировать где нажата кнопка ENTER: в поле ввода, или на одной кнопке, или на другой кнопке? Или все само правильно обработается стандарными событиями и достаточно описать только события кнопок?
У меня есть интерфейс. Этот интерфейс имеет параметр doAccept. Это значит, что интерфейс будет закрываться по нажатию ENTER. Правильно?
Играет ли какую-то роль: где будет нажата ENTER?
В интерфейсе есть поля ввода. И мне не нужно, чтобы при нажатии ENTER в полях ввода интерфейс закрывался.
А еще есть две кнопки. При нажатии на них ENTER интерфейс должен закрываться. Но при нажатии ENTER на одной кнопке, я должна дальше формировать отчет, а при нажатии ENTER на другой кнопке - должна прервать формирование отчета.
В связи с этим вопрос: чтобы реализовать выше описанное, надо ли мне анализировать где нажата кнопка ENTER: в поле ввода, или на одной кнопке, или на другой кнопке? Или все само правильно обработается стандарными событиями и достаточно описать только события кнопок?