![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
Rusman |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 4.5.2006 Где: Пермь Репутация: нет Всего: нет |
Подскажите пожалуйста как создать событие на ESC?
Спасибо! |
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 10 Всего: 80 |
|
|||
|
||||
Rusman |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 4.5.2006 Где: Пермь Репутация: нет Всего: нет |
Странно, но не рботает |
||||
|
|||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 10 Всего: 80 |
На форме наверное есть элементы, которые отбирают фокус
|
|||
|
||||
Rusman |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 312 Регистрация: 4.5.2006 Где: Пермь Репутация: нет Всего: нет |
Ага, сделал так, но проблема решена не полностью. Вот я вызываю из главное формы форму, потом нажимаю ESC у меня закрывается, потом снова вызываю эту же форму но уже при нажатии ESC она не закрывается, только после перезапуска программы.
|
|||
|
||||
VICTAR |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 10 Всего: 80 |
Посмотри аттач. Закрывается и с первого, и второго, и со сто двадцать пятого
![]() Присоединённый файл ( Кол-во скачиваний: 9 ) ![]() |
|||
|
||||
Virtuals |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 476 Регистрация: 27.11.2006 Репутация: 1 Всего: 11 |
тебе-ж сказали
соответственно просто убери захват фокуса элементами с формы |
|||
|
||||
pseud |
|
||||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 10 Всего: 40 |
кидаешь на форму кнопку TButton и выстваляешь ей свойство
а в событии OnClick:
-------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
||||
|
|||||
Olegan |
|
|||
![]() Крутой сисадмин ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 752 Регистрация: 15.5.2007 Репутация: нет Всего: 105 |
а так? |
|||
|
||||
Alexzz |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 9.4.2007 Где: Латвия Репутация: 1 Всего: 1 |
Меня заинтересовала одна строчка в твоём коде:
Правильно ли я понял, что это свойство установленное в True позволяет событиям основной формы проверять коды нажатых клавиш прежде чем любой другой объект на форме? Собственно я как раз ищу такой способ, так как тоже столкнулся с перехватом фокуса другими объектами и сложностями с обработкой глобальных клавиш, которые должны выполняться независимо от того, где на форме находится фокус. |
||||
|
|||||
VICTAR |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 10 Всего: 80 |
да
PS это свойство можно выставить в инспекторе объектов. В примере так сделано "чтобы заметили" =) |
||||
|
|||||
pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 10 Всего: 40 |
интересно кто мне такой боольшой минус 3 поставил?
и за что? отзовись... мануал гласит:
естественно это не подходит для окна_без_кнопок -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
hunterpro |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 6.8.2008 Где: Ростов-на-Дону Репутация: нет Всего: нет |
вот же лосось даже у меня работает!!!! )))))
![]() |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
pseud, ставил не я, но я тебе обьясню за что.
Да, можно кинуть кнопку. Да, можно сделать ее невидимой и тогда можно добиться эфекта окна_без_кнопок. Но программисту будет видна эта кнопка в design-time. А смысл ее будет только в том, что бы закрыть форму. Грубо говоря - это извращения. Раньше я встречал ответы типо "Кинь Memo, сделай Memo.Visible:= False и делай в нем все, что хочешь." Твой ответ с той же оперы. Кинув первый взгляд на такие ответы создается впечатление непрофессиональности автора. Увидев подобный проект... Ведь если тебе нужна таблица с фиксированным количеством столбцов и строк, ты ведь не будешь ее делать при помощи несколькиз едитов, а воспользуешься гридом. Так и тут, зачем для закрытия формы использовать кнопку, если можно сделать все средствами самой формы? По меньшей мере это не логично. -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 10 Всего: 40 |
Poseidon, я не предлагал сделать кнопку невидимой. сам такое не признаю.
но если у меня модальная форма (простая_сущность, настройки, о_программе, логин, и пр.), то там почти всегда есть кнопки ОК-Отмена. которым я немедля в дизайне выставляю:
и в итоге больше ничего прописывать не надо. окно само закрывается по Esc с возвратом mrCancel. если форма немодальная и на ней есть кнопка Отмена, то ей в обработчик пишу Close. не я выдумал этот механизм, а Borland. переубеди меня если я не прав, или опять: -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 9 Всего: 133 |
pseud, перечитай первый пост. Во-первых, там ни слово про модальность. Во-вторых, там просят не закрыть форму по ESC, а создать событие. Вдруг нужно язык интерфейса сменить? А выставивь Cancel в True, ты будешь отлавливать ESC кнопкой, чего делать не просят.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
THandle |
|
|||
![]() Хранитель Клуба ![]() Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 50 Всего: 372 |
pseud, минус сообщению поставил я, по перечисленным Посейдоном причинам.
|
|||
|
||||
pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 10 Всего: 40 |
Poseidon, THandle,
в продолжение пост автора вопроса: т.е. я понял верно. закрытие окна по Esc -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
pseud |
|
|||
![]() Экспёрт Тыдыщ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1175 Регистрация: 18.5.2007 Где: Минск, Беларусь Репутация: 10 Всего: 40 |
вобщем, как обычно - спор низачем.
без автора не разрулить. -------------------- Испытание чужого терпения можно считать успешным, если оно лопнуло... |
|||
|
||||
mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 3 Всего: 128 |
Насторожила вот эта вещь:
Создается впечатление, что цель всех этих шаманств - это закрыть диалоговое окно по нажатию Esc. Тогда вы зря наезжаете на pseud, он все говорит верно, в любой диалоговой форме должны быть кнопки "ОК" и "Отмена", причем на отмену обычно устанавливают Cancel = True (ну и обычно еще modalResult = mrCancel) и все на том. Это сообщение отредактировал(а) mr.Anderson - 10.8.2008, 17:48 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |