|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
YuRockОна хочет, чтобы при сворачивании модальной формы свернулось бы и главное окно, а при восстановлении - чтобы развернулось и всё стало хорошо)) Это и ежу понятно. Непонятно почему в первом посте описан такой странный способ этого добиться. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2021, 23:31 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
Прикольно. Это что-то в Windows 10 поменялось, действительно реакция на клики по кнопкам в панели задач теперь работает через какую-то прослойку (не утверждаю, но по наблюдению так). Shift+Клик правой кнопкой - мыши работает по старому и сообщение WM_ACTIVATE доходит до формы. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 00:12 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
Кажется, нашёл решение... Фикус в том, что ShowModal делает DisableTaskWindows - всем формам, кроме текущей модальной, посылается EnableWindow(, False). Модальная (обычно) не имеет кнопки в панели задач, а так форма, которая в панели - это, как правило, главная форма и она задизейблена. Раньше задизейбленные окна получали WM_Activate, а теперь - нет (у меня Windows 10 актуальной версии, обновляется автомтом). Решение в том, что перед сворачиванием модального окна нужно главной форме (и всем тем, которые рисуют кнопку в панели задач) сказать EnableWindow(, True), а при разворачивании - обратно Enable(False). ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 00:34 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
delphinotes Кажется, нашёл решение... Фикус в том, что ShowModal делает DisableTaskWindows - всем формам, кроме текущей модальной, посылается EnableWindow(, False). Модальная (обычно) не имеет кнопки в панели задач, а так форма, которая в панели - это, как правило, главная форма и она задизейблена. Раньше задизейбленные окна получали WM_Activate, а теперь - нет (у меня Windows 10 актуальной версии, обновляется автомтом). Решение в том, что перед сворачиванием модального окна нужно главной форме (и всем тем, которые рисуют кнопку в панели задач) сказать EnableWindow(, True), а при разворачивании - обратно Enable(False). Да вы спец! Завелась! Пример кода (требуется причесать и возможно, поставить еще какие ограничители, чтобы излишне не сработал) - но на вопрос в теме ответ получен. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 01:31 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
Да я на этом собаку съел. Пофиксил в своей базовой форме (у меня все формы наследуются от базовой): https://github.com/delphinotes/BaseForms/blob/master/BaseForms.pas ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 01:38 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
delphinotes Да я на этом собаку съел. Пофиксил в своей базовой форме (у меня все формы наследуются от базовой): https://github.com/delphinotes/BaseForms/blob/master/BaseForms.pas Зачем такой огромный модуль если только 1 проблему описанную в топике надо было решить? Или ради этой опции не надо тянуть в проект весь модуль? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 01:57 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
Там не одна проблема решается. Если не лень - почитайте на досуге (снизу вверх): http://www.delphinotes.ru/search/label/BaseForms Вы можете выдернуть из модуля только то, что вам нужно. Единственное на что обратить внимание - там есть ряд переменных (которые на букву G начинаются), которые по смыслу глобальные (ну т.е. когда форм много, и на панели задач отображается не только главная но и ещё некоторые, то управление сворачивания/разворачивания должно идти через отдельный кусок кода, не привязанный к модулю конкретной формы). ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 02:02 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
Наталья87 Казалось бы простое, стандартное действие. Да казалось бы. Но вот я открываю офисную программу от MS и вызываю диалог записи файла. И в нём "почему-то" нет кнопки минимизации! Так может оно и не очень стандартное или совсем нестандартное? Если подумать, то интуитивно понятно, что если ваше приложение вызвало модальный диалог, то оно требует от пользователя принять решение о каких-то действиях сегодня и сейчас! Зачем тогда иметь возможность его минимизировать? И диалог и приложение. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 02:24 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
northener Наталья87 Казалось бы простое, стандартное действие. Да казалось бы. Но вот я открываю офисную программу от MS и вызываю диалог записи файла. И в нём "почему-то" нет кнопки минимизации! Так может оно и не очень стандартное или совсем нестандартное? Если подумать, то интуитивно понятно, что если ваше приложение вызвало модальный диалог, то оно требует от пользователя принять решение о каких-то действиях сегодня и сейчас! Зачем тогда иметь возможность его минимизировать? И диалог и приложение. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 03:06 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
YuRock Естественно, модальные окна - это диалоги Далеко не всегда. Мне сразу вспоминается модальное окно, в котором размещался договор ДМС - со всеми подробностями, тот, который заключает организация для массового страхования своих сотрудников. 24, кажется, закладки в PageControl-е, каждая густо усыпана данными, вводимыми различными специалистами, немало гридов, с которых вызываются вторичные окна. Такой себе диалогик. Почему оно было модальным? А фиг его знает, если честно. Так было в требованиях, мы сделали. Видимо, заказчик так захотел. Если точнее, 24 закладки изначально были 24-мя разными кнопками, с которых вызывались разные формы - но потом заказчик захотел, чтобы это были 24 закладки в одной мегаформе. Мы сделали. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 04:59 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
northener Наталья87 Казалось бы простое, стандартное действие. Да казалось бы. Но вот я открываю офисную программу от MS и вызываю диалог записи файла. И в нём "почему-то" нет кнопки минимизации! Так может оно и не очень стандартное или совсем нестандартное? Если подумать, то интуитивно понятно, что если ваше приложение вызвало модальный диалог, то оно требует от пользователя принять решение о каких-то действиях сегодня и сейчас! Зачем тогда иметь возможность его минимизировать? И диалог и приложение. И да и нет. С одной стороны - действие от пользователя ожидается, да. С другой стороны - ожидаться может и час и два и почему в это время пользователь не имеет права отдохнуть и выпить чаю/почитать браузер, например. Windows же позиционируется как многозадачная и многооконная операционная система, потому такое поведение программы представляется логичным. В 1С 7.7 - скажем, все окна кроме главного в какой-то мере ожидают действий пользователя - так и что теперь - не отдыхать и окна не переключать? Или не пользоваться ShowModal (а изобретать свои велосипеды) чтобы небыло таких проблем. Слава Богу решение есть хоть и костыльное. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 10:54 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
delphinotes комментарии на русском в вашем коде на github побились, невозможно прочесть. А так с интересом посмотрел)) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 12:30 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
Наталья87Или не пользоваться ShowModal Да, именно так. Чем вас обычный Show не устраивает? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 13:29 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Наталья87Или не пользоваться ShowModal Да, именно так. Чем вас обычный Show не устраивает? Тем, что после действий в форме по ShowModal программа должна вернуться строго в предыдущую форму. Данные в предыдущей форме должны обновиться после закрытия модальной, состояние предыдущей формы не должно меняться до закрытия модальной. Но при этом незачем пользователю запрещать программу сворачивать, т. к. 99% времени работы пользователь находится в той или иной модальной форме. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 14:17 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
delphinotes Кажется, нашёл решение... Фикус в том, что ShowModal делает DisableTaskWindows - всем формам, кроме текущей модальной, посылается EnableWindow(, False). Модальная (обычно) не имеет кнопки в панели задач, а так форма, которая в панели - это, как правило, главная форма и она задизейблена. Раньше задизейбленные окна получали WM_Activate, а теперь - нет (у меня Windows 10 актуальной версии, обновляется автомтом). Решение в том, что перед сворачиванием модального окна нужно главной форме (и всем тем, которые рисуют кнопку в панели задач) сказать EnableWindow(, True), а при разворачивании - обратно Enable(False). Есть конечно и минус Вашего решения. В том, что если делать EnableWindow(, True) - то при сворачивании программа показывается не только в панели задач - но еще остается сама форма на экране (в нижнем левом углу) в свернутом виде. Но неудобств это сильных не доставляет - склоняюсь к тому, что так правильно, так как в Delphi XE10 без Вашего кода все происходит точно также. В чем-то даже плюсы такого поведения программы есть. К тому же - если программа запущена не от имени Администратора - никто не мешает делать по-старому для привиредливых пользователей. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 14:20 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
Наталья8799% времени работы пользователь находится в той или иной модальной форме. Да, в наше время трудно найти грамотного UI/UX архитектора... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 14:23 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Наталья8799% времени работы пользователь находится в той или иной модальной форме. Да, в наше время трудно найти грамотного UI/UX архитектора... Вы еще больше ужаснетесь если узнаете, что главная форма программы - это форма авторизации перед запуском программы (которую по хорошему надо временно создавать в DPR-файле и уничтожать после авторизации), а вторая модальная форма в 99% случаях не открыта на экране, вся основная работа происходит в третьей и далее модальной форме. Конечно, сейчас не стала бы так делать. Но переделывать себе дороже выйдет - куча глюков вылезет, так как в этой первой Form1 (которая для авторизации) куча кода, связанного с остальной программой. К тому же если приложение делать как MDI - там будут свои заморочки. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 14:27 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
softwarer YuRock Естественно, модальные окна - это диалоги Далеко не всегда. Мне сразу вспоминается модальное окно, в котором размещался договор ДМС - со всеми подробностями, тот, который заключает организация для массового страхования своих сотрудников. 24, кажется, закладки в PageControl-е, каждая густо усыпана данными, вводимыми различными специалистами, немало гридов, с которых вызываются вторичные окна. Такой себе диалогик. Почему оно было модальным? А фиг его знает, если честно. Так было в требованиях, мы сделали. Видимо, заказчик так захотел. Если точнее, 24 закладки изначально были 24-мя разными кнопками, с которых вызывались разные формы - но потом заказчик захотел, чтобы это были 24 закладки в одной мегаформе. Мы сделали. Но бывают, согласен, не диалоги. Редактирование справочников бывает удобно сделать модальным, чтобы после редактирования знать, нажали сохранить или отмена. Но это - тоже своего рода диалоги, их тоже сворачивать не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 15:14 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
YuRock Но это - тоже своего рода диалоги, их тоже сворачивать не надо. "Сворачивать не надо" две категории окон. Либо очень мелкое (такое, что нет проблем задвинуть его в угол), либо не содержащее никакой заметной нововведённой информации (такое, что его легко закрыть и потом переоткрыть). Всё, что не соответствует этим условиям - сворачивать просто необходимо. В случае модальных - вместе с приложением. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 15:34 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
[quot YuRock#22391947] softwarer пропущено... Но бывают, согласен, не диалоги. Редактирование справочников бывает удобно сделать модальным, чтобы после редактирования знать, нажали сохранить или отмена. Но это - тоже своего рода диалоги, их тоже сворачивать не надо. Именно что сворачивать надо. Чтобы пользователь мог в любой момент переключиться на другую задачу, а не был вынужден дозабивать данные прежде чем программа позволит себя свернуть. Из-за неадекватной работы с окнами Windows некоторых программ приходится для них использовать VirtualBox чтобы не мешались. Форма может быть не только для справочников - но например, для документов еще. Не сворачивать можно разве что окна выбора файла или простые диалоги ShowMessage, хотя в идеале и это тоже должно позволять себя свернуть. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 15:50 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
softwarerВсё, что не соответствует этим условиям - сворачивать просто необходимо. Чтобы посмотреть и скопировать информацию в это окно из окна другого приложения? Обычно хватает Alt-Tab. Единственное исключение - когда надо обнажить кусок рабочего стола, на котором ярлыки лежат. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 15:54 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Чтобы посмотреть и скопировать информацию в это окно из окна другого приложения? Чтобы отставить в сторону это приложение и заняться другим делом. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 15:56 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov softwarerВсё, что не соответствует этим условиям - сворачивать просто необходимо. Чтобы посмотреть и скопировать информацию в это окно из окна другого приложения? Обычно хватает Alt-Tab. Единственное исключение - когда надо обнажить кусок рабочего стола, на котором ярлыки лежат. Чтобы например, можно было без всяких AltDesk - в любой момент свернуть приложение и например, запускать текстовые и вордовские файлы с рабочего стола и при этом чтобы приложение не путалось под ногами и вело при сворачивании себя как нормальное приложение вроде Opera, Google Chrome и т. д. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 15:57 |
|
Не разворачивается приложение-если его запустить от имени Администратора, а потом свернуть
|
|||
---|---|---|---|
#18+
Наталья87вело при сворачивании себя как нормальное приложение вроде Opera, Google Chrome и т. д. А обращали ли Вы внимание, что ни Опера, ни Хром никогда не открывают модальных окон? И что при сворачивании одного их окна - оно сворачивается одно, остальные остаются развёрнутыми?.. Про то, что "текстовые и вордовские файлы на рабочем столе" - плохая привычка со многих точек зрения я, пожалуй, говорить не буду, ибо горбатого... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2021, 16:09 |
|
|
start [/forum/topic.php?fid=58&msg=40109120&tid=2036903]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
170ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 296ms |
0 / 0 |