![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Временное отключение мыши [D7, WinME]
Garfunkel © (2004-10-22 01:12:00)Уважаемые мастера! Задача такая - необходимо временно отключить мышь (запретить компонентам программы принимать сообщение о том что кнопка мыши нажата) или вообще ее убрать с экрана, а потом включить. Дело в том что у меня на форме четыре кнопки, при нажатии на одну из них должно совершаться некоторое действие, так вот если пользователь нажмет во время исполнения этого действия другую кнопку на форме, то будет большое гэ...:) Как бы решить эту проблему? Может не так радикально как с отключением мыши?
Gero (2004-10-22 07:46:00) [21]
> а если вдруг их Button сотни ! :))
а) Form.Enabled := False;
б) ProgressForm.ShowModal;
Гарри Поттер (2004-10-22 03:10:00) [22]>у меня на форме четыре кнопки, при нажатии на одну из них должно
> совершаться некоторое действие, так вот если пользователь нажмет
>во время исполнения этого действия другую кнопку на форме, то будет
>большое гэ...:)
Не... Большого гэ.. тут можно избежать только при помощи специальных девайсов как порекомендовал Вектор.
kostan (2004-10-22 02:59:00) [23]>Гы ;-))
>При условии незнания таких вещей как Button.Enabled := false;
а если вдруг их Button сотни ! :))
прикажешь через ComponentCount их отключать ???
(да и помимо button может пользователь че захочет :\\)
Гарри Поттер (2004-10-22 02:46:00) [24]>Это элементарно сделать при помощи API:
>EnableHadwareInput(Enable:boolean): boolean;
Гы ;-))
При условии незнания таких вещей как Button.Enabled := false;
kostan (2004-10-22 02:42:00) [25]Удалено модератором
kostan (2004-10-22 02:36:00) [26]Вот цитата (но рекомендовано в программах без "глюков"!)
Включение и выключение устройств ввода/вывода из программы на Delphi
Иногда может возникнуть необходимость в выключении на время устройств ввода - клавиатуры и мыши. Например, это неплохо сделать на время выполнения кода системы защиты от копирования, в играх, или в качестве "наказания" при запуске программы по истечению срока ее бесплатного использования ... . Однако наилучшее ее применение - отключение клавиатуры и мыши на время работы демонстрационки, основанной на воспроизведении записанных заранее перемещений мышки и клавиатурного ввода (см. об этом отдельный раздел этой книги). Это элементарно сделать при помощи API:
EnableHadwareInput(Enable:boolean): boolean;
Enable - требуемое состояние устройств ввода (True - включены, false - выключены). Если ввод заблокирован, то его можно разблокировать вручную - нажать Ctrl + Alt + Del, при появлении меню "Завершение работы программы" ввод разблокируется.
(2004-10-22 02:36:00) [27]Удалено модератором
Gero (2004-10-22 01:18:00) [28]А представь, что я не мышью на кнопку нажму, а с помощью клавы.
> Как бы решить эту проблему?
.Enabled - для этого он и предназначен.