Отловить клик за формой

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

zavul0n

Новичок
Доброго времени суток.
Создала инсталлятор, на нем сверху вывела форму через TForm.Create. Вывела форму на передний план через BringtoFront. Но теперь, если кликнуть на сам инсталлятор, а не на созданную форму, сама форма уходит на задний план. И чтобы вызвать её еще раз - приходится 2 раза нажимать на кнопку, а при выходе из инсталлятора - сыпятся ошибки.
Подскажите, как отловить клик за пределами формы, чтобы можно было послать TForm.Hide.

Заранее спасибо.
 
zavul0n
А зачем такие сложности? Расскажите, в чём смысл данной затеи, может можно это всё реализовать по-другому и проще.
 
Shegorat, реализую кастомный комбобокс путем создания кнопки через ботву, при клике на которую открывается форма с расположенными на ней радиобаттонами. Т.к. средствами ботвы, по аналогии с примером создания чекбоксов, сделать комбобокс не получилось. Приходится пользоваться вот такими костылями.
 
vint56, к сожалению, нет. Ведь комбобокс должен автоматически закрываться при клике на основном инсталляторе. Если делать по вашему примеру - тогда весь смысл пропадет. Проще сделать форму отдельно и заблочить кнопку Далее, пока форма открыта.
Но все равно спасибо за отклик.
 
zavul0n, ну а если воспользоваться, как вы говорите, "таким костылём": на wizardform повесить событие onclick, а в процедуре этого самого события выполнять TForm.Hide (ну что-то вроде if TForm.Show then TForm.Hide). Понимаю, что это всё криво, но как вариант...
 
Косой, спасибо, реализовала как вы и сказали. Но все таки если кликнуть на рабочем столе, например, а не на инсталляторе - форма же не закроется. Да и по лэйблам если кликать - тоже.
 
Последнее редактирование:
zavul0n, ну как вариант, тогда и к лейблам привязывать событие onclick. Как отследить клик за пределами wizardform я не знаю, но в качестве очередного "костыля" могу предложить повесить на wizardform событие OnMouseLeave и с него опять же выполнять TForm.Hide.
 
Косой, вот только для WizardForm событие OnMouseLeave не привяжешь. Unknown Identifier 'OnMouseLeave'.
А так - костыль хороший. Сама почему-то не додумалась. :D
 
Назад
Сверху