![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 2 Всего: 3 |
Есть главное окно, делаю так:
Можете возникнуть вопрос - зачем делаем Enabled := False; Enabled := True; ответ прост: дело в том, что MainForm имеет меню, а также панель инструмент и вот когда идет загрузка TFormDoc не хочу, чтобы он имел возможность кликать по ним. Вопрос: как можно заблокировать на время загрузки FormDoc, но при этом, чтобы фокус не терялся? -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
||||
|
||||
| Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 2 Всего: 3 |
Дело в том, что TFormDoc создается в MainForm при нажатии определенной кнопочки, а это я уже писал
Это сообщение отредактировал(а) Delphist - 11.1.2011, 22:53 -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
| БелАмор |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 10.6.2010 Где: Россия Репутация: 5 Всего: 17 |
Используйте TActionList и назначайте пунктам главного меню и кнопкам панели инструментов не обработчики OnClick, а свойство Action.
Тогда кроме других приятностей появляется возможность централизованно управлять доступностью действий и можно написать примерно так:
|
|||
|
||||
| Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 2 Всего: 3 |
естественно я использую Action, мне необходимо заблокировать все окно, потому что в окне грид, чтобы пользователь не пытался по нему елозить, и что-нить открыть. Вопрос: Как заблокировать окно, а затем разблокировать, но чтобы фокус не потерялся Это сообщение отредактировал(а) Delphist - 12.1.2011, 01:45 -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
а что, создание формы так сильно затягивается? Добавлено через 1 минуту и 30 секунд
добавь ещё 2 строки кода DataSet.DisableControls и DataSet.EnableControls |
||||
|
|||||
| БелАмор |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 10.6.2010 Где: Россия Репутация: 5 Всего: 17 |
Ну, я основываюсь на той информации, которая была предоставлена в вопросе. А в вопросе было сказано про меню и панель инструментов... Что касается запрета самой формы - лично мне этот вариант не нравится на интуитивном уровне. В этом случае будет закладка на поведение, которое может измениться как в следующих версиях Windows, так и в следующих версиях Delphi. Если бы эту задачу нужно было решать мне, то я, в дополнение к вышеприведённому коду, либо запрещал бы саму грид, либо панель, на которой лежит грид и всё остальное. Плюс, если такой трюк используется больше, чем в одном месте, вынес бы по две строчки в методы формы вроде DisableAll/EnableAll.
На мой взгляд, это чересчур сурово. В модальной форме могут понадобиться, например, DataAware-контролы... Плюс вложенность DisableControls/EnableControls, отключение Master-Detail и т.д. Это сообщение отредактировал(а) БелАмор - 12.1.2011, 12:27 |
||||
|
|||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Ну заблокируешь ты форму, а если пользователь нажмёт на горячую клавишу?
Добавлено через 1 минуту и 8 секунд это чтобы не блокировать всю форму, а только гри, привязанный к набору данных, ведь:
|
|||
|
||||
| Delphist |
|
|||
![]() Delphist Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2145 Регистрация: 3.2.2004 Где: всегда в сети Репутация: 2 Всего: 3 |
Я не стал все описать, а сказал кратко как заблокировать окно - значит на это была надобоность -------------------- ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др). Когда-то давным-давно использовал это... |
|||
|
||||
![]()
|
| Правила форума "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. |