|
Модальный позор
|
|||
---|---|---|---|
#18+
Сорри за тон, но это реально позор. Еще лет 20 назад, во времена Delphi 5 периодически натыкался на проблему модальных окон в делфовых приложениях. Когда при открытии/закрытии друг из друга нескольких модальных окон, одно из них улетало под неактивное главное окно приложения. Спасало только двойное Alt+TAB. Думал, что это осталось там, в начале нулевых. И что я увидел в Delphi 11, когда открыл простой файловый диалог из простого модального окна? Почти то же самое. При закрытии файлового диалога фокус уходит на главную форму, а модальная становится не активной. Спасибо, что хотя бы не под главной, как раньше. Помнится, в те давние времена модальные окна у делфового софта вообще вели себя не так, как у остальных программ. Точно не помню, но то-ли они не мигали заголовком, когда пытаешься фокус отнять, то-ли как-то еще, но точно "нестандартно". Сегодня никакой разницы в поведении уже не видно, но похоже что модальность так и осталась самопальной, ее только немного подровняли. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 19:21 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Ну подумаешь, не смог человек найти новые оверлоады с явным указанием родительского окна... Это же тяжко, многа букафф читать... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 19:35 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
virtual memberв Delphi 11, когда открыл простой файловый диалог из простого модального окна? При закрытии файлового диалога фокус уходит на главную форму, а модальная становится не активной. Есть воспроизводимый пример? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 19:36 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам virtual memberв Delphi 11, когда открыл простой файловый диалог из простого модального окна? При закрытии файлового диалога фокус уходит на главную форму, а модальная становится не активной. Есть воспроизводимый пример? Насколько я помню, для этого вполне достаточно криво поставить PopupMode. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 19:45 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, конечно. Даже имена форм и модулей не трогал, предельно минималистичный пример. Компилирую в D11, запускаю под Win10. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 20:35 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Это же тяжко, многа букафф читать... Харош фигню пороть с умным видом. В системной либе очевидная неконсистентность, а вы тут в тупом сарказме соревнуетесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 21:03 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer> Насколько я помню, для этого вполне softwarer> достаточно криво поставить PopupMode. Не, я не про PopupPArent/PopupMode, а про сценарий. Т.е. IIRC кривости были со сменой фокуса и прочими Alt+Tab-ами, а не просто рядовое "открыл диалоговое окно из модального". Поэтому и есть подозрение, что человек лохматит бабушку. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 21:26 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Скачал тестовый пример, не смог воспроизвести ошибку. По клику на кнопке на форме1 модально открывается форма2, по клику на кнопке на ней открывается диалог открытия файла, когда он закрывается, неважно, по ОК или Отмена, 2 форма остается наверху, 1-ая, понятно, недоступна. В разных вариациях пробовал, даже открывая или выводя на 1 план другие программы, пока 2-ая форма открыта или файловый диалог из неё открыт. Все нормально работало. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 22:16 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Вот тоже старый баг с модальностью окон. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 23:01 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
virtual member Харош фигню пороть с умным видом. Dimitry Sibiryakov Ну подумаешь, не смог человек найти новые оверлоады с явным указанием родительского окна... Код: pascal 1. 2. 3. 4.
вместо того, чтобы возбуждаться на нежелание утирать сопли, и проблема бы ушла сама собой ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 23:04 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
s62 Все нормально работало. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 23:04 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Потому что Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 23:09 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Я бы сказал что это не столько делфи баг сколько операционной системы, прокладки итп. Особенно часто проявляется на том же Citrix. С таким же успехом наблюдал его у приложений написанных на том же C#. Хотя, возможно я неправ :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 23:09 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
_Vasilisk_ s62 Все нормально работало. Посмотри, пожалуйста, значение свойства Код: pascal 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 23:11 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
_Vasilisk_, ну да, ты уже... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 23:12 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
_Vasilisk_ Потому что Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
...и в конструкторе TApplication Код: pascal 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 23:14 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
ъъъъъ Посмотри, пожалуйста, значение свойства Код: pascal 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 23:15 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Mikhail TchervonenkoЯ бы сказал что это не столько делфи баг сколько операционной системы, прокладки итп. Конкретно это - баг VCL, причём архитектурный. Они с самого начала (первой версии) начали делать визуальную часть немного криво. Потом подпёрли костылями. Потом ещё. И ещё. В результате вот такие топики. PS: А C# тупо VCL скопировала вместо со всеми багами. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 23:16 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Потом подпёрли костылями. Потом ещё. И ещё. В результате вот такие топики. Здесь главная кривизна в том, что они "для совместимости" оставили по дефолту pmNone (если мне память не изменяет). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 23:21 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer, так и есть. Интересно, но ведь что-то помешало изменить, и это, надо полагать, не ситуация с глючным переключением фокуса. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 23:24 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
ъъъъъ Интересно, но ведь что-то помешало изменить Скорее всего - излишняя осторожность. Что-нибудь типа "люди уже написали у себя workaround-ы для наших багов, и если мы вдруг изменим, у них перестанет работать". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 23:32 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer Скорее всего - излишняя осторожность. Что-нибудь типа "люди уже написали у себя workaround-ы для наших багов, и если мы вдруг изменим, у них перестанет работать". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 23:42 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Какой именно баг ? Как именно выгребаешь ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 23:48 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
_Vasilisk_ softwarer Скорее всего - излишняя осторожность. Что-нибудь типа "люди уже написали у себя workaround-ы для наших багов, и если мы вдруг изменим, у них перестанет работать". К счастью, иногда не останавливает. Но реже, чем стоило бы. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.12.2021, 23:50 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Dmitry Arefiev Какой именно баг ? Dmitry Arefiev Как именно выгребаешь ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 00:04 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
_Vasilisk_ При переводе очередного проекта на новые версии все ломается, а потом я вспоминаю об исправленном баге Ты сам пишешь, что понадобился день на исправление. Я думаю, это в высшей степени приемлемая цена за несохранение старых багов в новых версиях. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 00:15 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
_Vasilisk_ Dmitry Arefiev Какой именно баг ? Есть в трекере Эмбы ? Если только тут, то = нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 00:18 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Dmitry Arefiev Есть в трекере Эмбы ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 01:29 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer Ты сам пишешь, что понадобился день на исправление. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 01:32 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
_Vasilisk_, вы читать умеете? Перечитайте топик и уясните уже, что советов здесь никто не просил. Тем более у личностей, которым клеймо biohazard ставить негде. А позор из заголовка топика -- это когда использование совершенно штатных методов без малейших признаков шаманства приводит приложение в такое состояние, в котором оно просто не должно быть ни при каких раскладах. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 01:56 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
virtual memberиспользование совершенно штатных методов без малейших признаков шаманства О чём ты говоришь? В Windows НЕТ штатных средств создания модального окна за исключением диалогового (что не для слабонервных). TForm.ShowModal это изначально кривоватый костыль, у которого приходится удивляться не глюкам, а тому, что оно хоть как-то работает. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 02:17 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov В Windows НЕТ штатных средств создания модального окна за исключением диалогового (что не для слабонервных) Почему в VCL было не реализовать модальность через DialogBoxIndirectParam (или как там оно) - тайна. Оконная функция "не такая"? Элементарно обходится, зато глюков нет, включая глюки из-за доп. цикла выкрутки сообщений, при появлении которого (в сторонней dll, например) дельфовые модальные окна вообще закрываться перестают, т.к. "туда не доходит". Я VCL-окна не использую давно из-за этого (только в одной уже старой программе и для тестов), т.к. для меня это непобедимая проблема - цикл с проверкой на переменную ModalResult, который теряет управление. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 03:50 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
YuRock Почему в VCL было не реализовать модальность через DialogBoxIndirectParam (или как там оно) - тайна. Думаю, в этом случае "глюки дельфовой модальности" вспоминались бы с детской нежностью. YuRock включая глюки из-за доп. цикла выкрутки сообщений Первопричиной этих "глюков" я бы назвал существование синхронного ModalResult (то есть желание писать код в стиле if ShowModal = mrOk then). Этот аспект перпендикулярен внутренней реализации ShowModal - хоть так как есть, хоть через DialogBoxIndirectParam, хоть как угодно ещё. YuRock при появлении которого (в сторонней dll, например) И это точно глюк именно Delphi? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 08:41 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer то есть желание писать код в стиле if ShowModal = mrOk then). Этот аспект перпендикулярен внутренней реализации ShowModal softwarer YuRockпри появлении которого (в сторонней dll, например) И это точно глюк именно Delphi?Да, точно, модальное окно должно закрываться вне зависимости от того, какой цикл сейчас работает, а в Delphi это не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 13:47 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
YuRockЧто там "не для слабонервных"? Почему в VCL было не реализовать модальность через DialogBoxIndirectParam (или как там оно) - тайна. Масштабы, например. Хотя, если посмотреть на текущее состояние дел, может, именно это могло быть самым большим плюсом. Ну и скудный выбор доступных контролов. Попугашистости не хватает. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 13:56 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Ну и скудный выбор доступных контролов. Тут вопрос скорей возникнет - а как же Synchronize обрабатывать? Это да, беда. Хотя раньше такой беды не было. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 14:12 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
YuRockВсе делфовые контролы прекрасно бы лягли на такой диалог. Что надо запихать в шаблон для TDBGrid, например? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 14:19 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
YuRock Да, точно, модальное окно должно закрываться вне зависимости от того, какой цикл сейчас работает, а в Delphi это не так. Я не понимаю, как ты это себе технически представляешь. Допустим, речь идёт об одном потоке. В нём есть модальное окно. Это означает, что есть цикл обработки сообщений, в нём обрабатывалось какое-то сообщение, и эта обработка вызвала модальное окно. Сейчас она ждёт возврата из ShowModal, чтобы продолжиться. Теперь откуда-то есть ещё один цикл. Он "сейчас работает" и сообщение в нём должно закрыть модальное окно. "Сейчас работает" означает, что он по стеку вызовов ниже ShowModal, а "должен закрыть" - то, что должен произойти возврат из ShowModal в код выше по стеку. По-моему, такое возможно только если по этому сообщению первым делом закроется сам "ещё один цикл" вместе с кодом, в котором он работает. Я бы сказал - кривизна в самой идее наличия в одном потоке нескольких циклов обработки сообщений. Даже в том варианте, в котором она в дельфе. И уж тем более - когда появляется ещё какой-то, несогласованный с ними отдельный цикл. Глюки... неудивительны, говоря деликатно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 14:21 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov YuRockВсе делфовые контролы прекрасно бы лягли на такой диалог. Что надо запихать в шаблон для TDBGrid, например?Ничего. Создать окно грида динамически с парентом-хендлом диалога. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 14:26 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer По-моему, такое возможно только если по этому сообщению первым делом закроется сам "ещё один цикл" вместе с кодом, в котором он работает. softwarer Я бы сказал - кривизна в самой идее наличия в одном потоке нескольких циклов обработки сообщений. softwarer Даже в том варианте, в котором она в дельфе softwarer И уж тем более - когда появляется ещё какой-то, несогласованный с ними отдельный цикл. Глюки... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 14:32 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
YuRock Другой цикл прекрасно может обработать сообщение нажатия кнопки, по которому произойдет закрытие и убиение с экрана и памяти модального окна. А как он отработает возврат из ShowModal и продолжение той обработки, которая должна быть после ShowModal? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 14:36 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer YuRock Другой цикл прекрасно может обработать сообщение нажатия кнопки, по которому произойдет закрытие и убиение с экрана и памяти модального окна. А как он отработает возврат из ShowModal и продолжение той обработки, которая должна быть после ShowModal? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 14:41 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
YuRockНо, главное, что окно с экрана уберется. Программист, написавший в своём коде Form2.ShowModal, вряд ли будет ожидать такой подставы. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 14:54 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov YuRockНо, главное, что окно с экрана уберется. Программист, написавший в своём коде Form2.ShowModal, вряд ли будет ожидать такой подставы.Еще худшая подстава - когда пользователь ткнул "О программе" какое-нибудь или еще что, любой диалог, и потом закрыть его не может, убрать с экрана и вернуться к управлению основным окном. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 15:03 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
YuRock Никак, конечно. Выполнение кода вернется туда после того, как закончится доп. цикл. Но, главное, что окно с экрана уберется. Я не могу придумать, что в таком подходе хорошего. Один сплошной глюкогенератор. Давай представим себе простое приложение: из главного окна А открывается модальное Б. В модальном Б заполняется поле ввода, когда Б закрывается - введённый текст попадает в caption главного окна. Чего ожидает пользователь? Он ввёл текст, нажал ОК, окно Б закрылось, текст отобразился в окне А, окно А доступно для дальнейших действий. Что пользователь получает на самом деле? Он ввёл текст, нажал ОК, окно Б закрылось, текст в окне А не отобразился, окно А не доступно для дальнейших действий. Зато ещё неизвестно сколько работает некий "доп. цикл" и если повезёт, из него когда-нибудь удастся выйти. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 15:04 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Ну, это-то решается простым убиением бага в коде, который мешает всему вышеназванному... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 15:04 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer Что пользователь получает на самом деле? Он ввёл текст, нажал ОК, окно Б закрылось, текст в окне А не отобразился, окно А не доступно для дальнейших действий. Зато ещё неизвестно сколько работает некий "доп. цикл" и если повезёт, из него когда-нибудь удастся выйти. 1. Текст в окне А отобразится, если сменить текст по событию по нажатии кнопки модального окна, а не после ShowModal. 2. Окно A как раз становится доступным. 3. И не важно, сколько еще будет работать доп. цикл. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 15:16 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
YuRockТекст в окне А отобразится, если сменить текст по событию по нажатии кнопки модального окна Это плохой дизайн. Нарушает инкапсуляцию. Окно не должно ничего знать о том откуда и для чего его вызывают. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 15:29 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
YuRock Всё не так. YuRock 1. Текст в окне А отобразится, если сменить текст по событию по нажатии кнопки модального окна, а не после ShowModal. То есть ты практически отказываешься от того, что чуть раньше назвал нормальным - желания писать if ShowModal then {что-нибудь}. Теперь это "что-нибудь" нужно писать в нажатии кнопки. Давай теперь предположим, что окно Б - это стандартная функция InputQuery. Как ты предлагаешь обработчику её кнопки узнавать, чей текст менять? YuRock 2. Окно A как раз становится доступным. Ну разве что если это тоже делать в обработчике кнопки. YuRock 3. И не важно, сколько еще будет работать доп. цикл. А главное - зачем и нахрена он вообще нужен. Ради кривой фигни ты так постепенно всё приложение перекособочишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 16:02 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov YuRockТекст в окне А отобразится, если сменить текст по событию по нажатии кнопки модального окна Это плохой дизайн. Нарушает инкапсуляцию. Окно не должно ничего знать о том откуда и для чего его вызывают.Зато можно сделать хоть как-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 16:24 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer То есть ты практически отказываешься от того, что чуть раньше назвал нормальным - желания писать if ShowModal then {что-нибудь}. Теперь это "что-нибудь" нужно писать в нажатии кнопки. Я не отказываюсь. Одно дело - сделать что-то после ShowModal (не факт, что пользователь вообще должен это что-то видеть), а другое дело - изменить интерфейс одномоментно. softwarer Давай теперь предположим, что окно Б - это стандартная функция InputQuery. softwarer YuRock2. Окно A как раз становится доступным. Ну разве что если это тоже делать в обработчике кнопки.Естественно, окно убивается именно в обработчике кнопки. И главное окно просто становится доступным. Само. Сразу. softwarer YuRock3. И не важно, сколько еще будет работать доп. цикл. А главное - зачем и нахрена он вообще нужен.Это совсем из другой оперы вопрос. Например, ожидать событие из другого потока с выкруткой сообщений. softwarer Ради кривой фигни ты так постепенно всё приложение перекособочишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 16:33 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
YuRock Зато можно сделать хоть как-то. Нафиг такие костыли. Не нравятся модальные формы - сделай свои, под себя. Пока же предложения из разряда: "из огня да в полымя". ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 18:46 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
rgreat Не нравятся модальные формы - сделай свои, под себя. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 18:54 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
YuRock, Ну и хорошо. Зачем только предлагаешь сменить одни костыли на другие? Если у тебя есть полноценный "фикс" - выкладывай, а смена шила на мыла - контрпродуктивна. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 18:56 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
rgreat Ну и хорошо. Зачем только предлагаешь сменить одни костыли на другие? Изначальный костыль - это запускать доп. цикл обработки сообщений, чтобы крутить проверку Код: pascal 1. 2. 3. 4. 5.
rgreat Если у тебя есть полноценный "фикс" - выкладывай, а смена шила на мыла - контрпродуктивна. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 19:05 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
YuRock Изначальный костыль - это запускать доп. цикл обработки сообщений, чтобы крутить проверку Код: pascal 1. 2. 3. 4. 5.
Такой костыль необходим только если вы чрезмерно усложнили приложение. Так что: либо у вас ModalResult работает как задумано, либо у вас приложение со сложным конвеером(ами) сообщений, благодаря чему вы вынуждены городить костыли как выше или не пользоваться ShowModal вообще. YuRock Мой фикс - это неиспользование вот этого всего, а использование DialogBoxIndirectParam+EndDialog. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 19:17 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
YuRock Если у тебя в голове не укладывается Знаешь, когда у человека в распоряжении остаются лишь такие аргументы - это лучше всего показывает степень его правоты. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 19:22 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
YuRock Изначальный костыль - это запускать доп. цикл обработки сообщений, чтобы крутить проверку Именно. Мало того, твои претензии вызваны желанием запускать точно такой же костыль. Хотя и там, и там стоило бы сделать хорошо. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 19:24 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
rgreat YuRock Изначальный костыль - это запускать доп. цикл обработки сообщений, чтобы крутить проверку Код: pascal 1. 2. 3. 4. 5.
Такой костыль необходим только если вы чрезмерно усложнили приложение. Такой костыль находится у тебя внутри функции TCustomForm.ShowModal ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 19:40 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer YuRock Изначальный костыль - это запускать доп. цикл обработки сообщений, чтобы крутить проверку Именно. Мало того, твои претензии вызваны желанием запускать точно такой же костыль. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2021, 19:41 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
А вот еще с модальными окнами веселуха. Если запустить прогу на терминальном сервере и свернуть модальное окно (вызов его из основной формы был сделан), то с вероятностью 50х50 оно пропадает (Alt+Tab иногда помогает, если терминал на полный экран) и в левом нижнем углу его не видно для обратного разворачивания. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2021, 02:58 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Dmvrt, Для модальных окон необходимо отключать кнопку "свернуть", тогда этой проблемы не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2021, 09:56 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
DmvrtА вот еще с модальными окнами веселуха. Почему "ещё"? Это та же самая "веселуха", которая перетирается начиная с первого поста этого топика. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2021, 13:31 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
С тех пор, как я начал втыкать Application.ProcessMessages непосредственно перед ShowModal, проблема ушла окончательно. Delphi XE юзаю с 2011 года. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 08:58 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
V.Borzov С тех пор, как я начал втыкать Application.ProcessMessages непосредственно перед ShowModal Скорее всего, сейчас Вы услышите о том, что Application.ProcessMessages - это очень плохо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 09:12 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer, Ну, поначалу тоже так казалось, но не нашел причин не вызывать его непосредственно перед ShowModal. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 09:27 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
V.Borzov Ну, поначалу тоже так казалось, но не нашел причин не вызывать его непосредственно перед ShowModal. Ну, чисто теоретически моменты есть. Например, если перед этим ShowModal делается что-то тяжёлое, пользователь может успеть кликнуть по другой кнопке, и в результате та "нажмётся". Кроме того, многие странные люди любят реализовывать ту или иной функциональность, посылая сообщения, и от неожиданного ProcessMessages она начинает ломаться. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 09:34 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer> Ну, чисто теоретически моменты есть. Я бы скорее указал на то, что конкретно момент с потерей (невозвратом) фокуса ProcessMessages перед ShowModal никак помочь не может... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 09:55 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам Я бы скорее указал на то, что конкретно момент с потерей (невозвратом) фокуса ProcessMessages перед ShowModal никак помочь не может... Не знаю. Темна вода во облацех (ц) Я вот не возьмусь утверждать, что в любой ситуации, где без него окно теряется, оно и с ним потеряется. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 10:24 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам Я бы скорее указал на то, что конкретно момент с потерей (невозвратом) фокуса ProcessMessages перед ShowModal никак помочь не может... Может, и не может, но помогает. Жалобы прекратились, уж с год, наверное, как прикрутил, и нет больше жалоб. Рассуждать, как это происходит, не буду, но есть подозрение, что операторы пережимают кнопку, вызывающую процедуру, вызывающую ShowModal. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 10:43 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
V.Borzov> есть подозрение, что операторы пережимают кнопку, V.Borzov> вызывающую процедуру, вызывающую ShowModal. А, для такого конкретного сценария, может и поможет (если кнопка не предусматривает повторные нажатия, конечно). От других сабжевых ситуаций - типа потери/возврата фокуса приложением - ProcessMessages спасать не должен (по идее). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 11:12 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам virtual memberв Delphi 11, когда открыл простой файловый диалог из простого модального окна? При закрытии файлового диалога фокус уходит на главную форму, а модальная становится не активной. Есть воспроизводимый пример? проблему подтверждаю, правда не в Александрии, а в более ранних, но современных версиях дельфи. Пришлось делать костыль в программе, чтобы ВСЕ окна имели свой собственную отдельную кнопку на панели задач Винды, чтобы в случае такой "блокировки" пользователь хотя бы так мог переключиться на модальное "скрытое" окно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 14:18 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
X11 проблему подтверждаю, правда не в Александрии, а в более ранних, но современных версиях дельфи. Пришлось делать костыль в программе, чтобы ВСЕ окна имели свой собственную отдельную кнопку на панели задач Винды, чтобы в случае такой "блокировки" пользователь хотя бы так мог переключиться на модальное "скрытое" окно. А чего бы просто фокус форме после закрытия диалога не вернуть, а? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 14:21 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
до диалога не добраться просто так, чтобы его закрыть... т.е. пользователь жмет Alt+Tab и переходит к форме добавления объявления, например, но... перед формой висит невидимый диалог типа MessageDlg или ShowMessage и все, затык... на форме ничего нельзя нажать, даже закрыть ее нельзя. А вот если перейти на форму с помощью кнопки на панели задач, то тогда форма появляется и перед ней висит тот самый диалог ShowMessage. Пример. Пользователь жмякает "Сохранить объявление", а ему программа выдает какой-нибудь вопрос, пользователь переходит к другой программе (на знаю каким способом), например, чторбы что-то уточнить-проверить, возвращается к моей программе с пом. Alt+Tab и оппппа... форма добавления некликабельна. Проявляется не всегда, кстати. Я закономерность не смог выяснить, а когда добавил костыли, то уже и не стал выяснять. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 15:37 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
X11перед формой висит невидимый диалог типа MessageDlg или ShowMessage и все, затык... "Пони бегает по кругу и в уме круги считает." Ещё один не смог найти оверлоад с явным указанием родительского окна... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 15:57 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Часто Application.MessageBox() или другое окно вызывается далеко и глубоко в недрах программы, а не из текущего окна и там нет никаких дискрипторов "родительского окна". И Application.MessageBox() я нигде напрямую не вызываю почти никогда. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 17:01 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
X11и там нет никаких дискрипторов "родительского окна". Значит его надо туда передать. Или таки перестать удивляться почему Z-order не такой как Вы себе выдумали. Накрайняк - использовать MB_TASKMODAL. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 17:57 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov X11и там нет никаких дискрипторов "родительского окна". Значит его надо туда передать. Или таки перестать удивляться почему Z-order не такой как Вы себе выдумали. Накрайняк - использовать MB_TASKMODAL.MB_TASKMODAL задизаблит все окошки текущего потока. Хотя, наверное именно это автору и нужно... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 18:09 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Ну, указывать в messagebox-е хандл родительского окна - это действительно позорище. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 18:20 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer Ну, указывать в messagebox-е хандл родительского окна - это действительно позорище. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 18:30 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Передавать функции нужный для её работы объект в качестве параметра - нормально для программирования в целом. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 18:32 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
X11, Я давным-давно делаю вместо ShowMessage() что-то такое: Код: pascal 1. 2.
куда отдаю Handle вызывающего окна. В принципе описанная ситуация возможна при каскаде ShowMessage() (ну и других диалогов конечно), но такое "Подтвердите, что вы подтвердили...." - это уже говорит о некоторой кривизне. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 18:56 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer, Application.MainForm.Handle, Application.ActiveForm.Handle - доступны из любого места. В наименовании свойств могу ошибаться - давно не заглядывал в дебри, сделав свои обертки. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 19:01 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
DarkMaster Application.MainForm.Handle, Application.ActiveForm.Handle - доступны из любого места. В наименовании свойств могу ошибаться - давно не заглядывал в дебри, сделав свои обертки. Именно поэтому. Позорище - требовать от вызывающего передать параметром то, до чего функция без проблем может добраться самостоятельно. В вариантах с явной передачей хандла есть смысл разве что тогда, когда приложение по каким-то причинам создаёт winapi-шное окно, которое и является текущим. Хотя и в этом случае GetActiveWindow, вообще говоря, никто не отменял. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 19:11 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer, Плагины, Саш, плагины :( ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2021, 23:59 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer Позорище - требовать от вызывающего передать параметром то, до чего функция без проблем может добраться самостоятельно. С 1-го окна вызывается MessageBox, модальный по отношению только к первому окну. Со 2-го окна вызывается MessageBox, модальный по отношению только ко 2-у окну. А с 3-го (или еще из недр каких-то) вызывается MessageBox, модальный по отношению ко всем окнам потока. И что, не нужы параметры в этой функции? Ну чушь же безапелляционная. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2021, 03:36 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
DarkMaster Плагины, Саш, плагины :( https://vse-shutochki.ru/anekdot/34290 YuRock С 1-го окна вызывается MessageBox, модальный по отношению только к первому окну. Со 2-го окна вызывается MessageBox, модальный по отношению только ко 2-у окну. А с 3-го (или еще из недр каких-то) вызывается MessageBox, модальный по отношению ко всем окнам потока. И нафига это мозготяпство? Только для того, чтобы тявкнуть? Вот попробуй объяснить русским языком: для чего пользователю иметь на экране два незакрытых messagebox-а и работать при этом в третьем окне. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2021, 09:06 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer YuRock С 1-го окна вызывается MessageBox, модальный по отношению только к первому окну. Со 2-го окна вызывается MessageBox, модальный по отношению только ко 2-у окну. А с 3-го (или еще из недр каких-то) вызывается MessageBox, модальный по отношению ко всем окнам потока. И нафига это мозготяпство? Только для того, чтобы тявкнуть? Вот попробуй объяснить русским языком: для чего пользователю иметь на экране два незакрытых messagebox-а и работать при этом в третьем окне. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2021, 09:20 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
YuRock Ты до сих пор на браузеры с вкладками не перешел Итого, на вопрос ты ответить не смог, то есть такая хрень ни за чем не нужна. ЧТД. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2021, 10:21 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer YuRock Ты до сих пор на браузеры с вкладками не перешел Итого, на вопрос ты ответить не смог, то есть такая хрень ни за чем не нужна. ЧТД. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2021, 10:43 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
YuRock softwarer пропущено... Итого, на вопрос ты ответить не смог, то есть такая хрень ни за чем не нужна. ЧТД. https://ru.citaty.net/tsitaty/614610-albert-einshtein-esli-vy-chto-to-ne-mozhete-obiasnit-6-letnemu-rebion/ ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2021, 10:48 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer, Я бы почитал объяснение теории относительности для шестилетнего ребёнка... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2021, 11:28 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
alekcvp softwarer, Я бы почитал объяснение теории относительности для шестилетнего ребёнка... - г-н Эйнштейн, а Вы можете популярно объяснить суть теории относительности? - например длительность минуты зависит от того, с какой стороны двери туалета вы находитесь ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2021, 11:36 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
alekcvp Я бы почитал объяснение теории относительности для шестилетнего ребёнка... Мне хватило бы вспомнить, как я начинал читать научную фантастику. При приближении к скорости света масса нарастает, время замедляется итп. Я, честно говоря, не могу вспомнить, когда и как мне это объяснили - память перескакивает на то, как при чтении "Заповедника гоблинов" я зацепился за "Леонид и воины", и мама рассказывала мне про Фермопилы. Не вижу особых проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2021, 11:37 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
читать всё было влом.... А никто не вспомнил, кто Parent у окна проблемного? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2021, 19:09 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer Мне хватило бы вспомнить, как я начинал читать научную фантастику. При приближении к скорости света масса нарастает, время замедляется итп. Это следствие из неё. Ну т.е. как на вопрос "что такое лампочка" сказать "вот когда мы щёлкаем выключателем - в комнате становится светло". Тоже, конечно, объяснение, но не то чтобы про лампочку. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2021, 19:53 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
alekcvp softwarer Мне хватило бы вспомнить, как я начинал читать научную фантастику. При приближении к скорости света масса нарастает, время замедляется итп. Это следствие из неё. Ну т.е. как на вопрос "что такое лампочка" сказать "вот когда мы щёлкаем выключателем - в комнате становится светло". Тоже, конечно, объяснение, но не то чтобы про лампочку. Внутри болида, в котором ты "приближаешься" - не так. Ты превысил скорость света. Ну, просто время у тебя теперь медленнее. ...кстати, пока на микроуровне, но уже реально придумали "варп" ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2021, 20:11 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
alekcvp Тоже, конечно, объяснение, но не то чтобы про лампочку. Шестилетнему ребёнку надо объяснять не так, как студенту физфака. Ему надо проиллюстрировать суть на доступном ему уровне; приведённый Вами вариант, конечно, далёк от идеала, но в целом находится на верном пути. Если чуть пофилософствовать - Эйнштейн справедливо отметил, что именно эту способность многие взрослые теряют. Они так закапываются в детали, что перестают видеть суть. У Фейнмана на эту тему тоже можно прочитать кое-что интересное, достаточно сделать поиск по слову "лекала". А на практике - я однажды ответил восьмилетней дочке на вопрос, зачем по ночам езжу к любовнице. Думаю, это было немного сложнее, чем с теорией относительности :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2021, 20:12 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
можно в 100 раз превысить скорость света... Просто это значит, что тебе кажется, что ты газуешь год, а у остальных прошло 101. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2021, 20:16 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
softwarer alekcvp Тоже, конечно, объяснение, но не то чтобы про лампочку. Шестилетнему ребёнку надо объяснять не так, как студенту физфака. Ему надо проиллюстрировать суть на доступном ему уровне; приведённый Вами вариант, конечно, далёк от идеала, но в целом находится на верном пути. Если чуть пофилософствовать - Эйнштейн справедливо отметил, что именно эту способность многие взрослые теряют. Они так закапываются в детали, что перестают видеть суть. У Фейнмана на эту тему тоже можно прочитать кое-что интересное, достаточно сделать поиск по слову "лекала". А на практике - я однажды ответил восьмилетней дочке на вопрос, зачем по ночам езжу к любовнице. Думаю, это было немного сложнее, чем с теорией относительности :) Ответить, зачем к любовнице, вместо изобретания двигателя сверхсветового? Сам понял? Не только у человека инстинкт размножения помножен на удовольствие... Иначе - было бы проблематичнее размножаться. Размножайся. Дети - умнее тебя будут. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2021, 20:26 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
DarkMaster X11, Я давным-давно делаю вместо ShowMessage() что-то такое: Код: pascal 1. 2.
куда отдаю Handle вызывающего окна. В принципе описанная ситуация возможна при каскаде ShowMessage() (ну и других диалогов конечно), но такое "Подтвердите, что вы подтвердили...." - это уже говорит о некоторой кривизне. https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Forms.TApplication.MessageBox function MessageBox(const Text, Caption: PChar; Flags: Longint = MB_OK): Integer; У тебя какой-то другой MessageBox, нестандартный тут тоже нет параметра для ввода Application.ActiveFormHandle function MessageDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer; ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 12:11 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Кстати, а что это за новые параметры в ShowMessage, описания которых нет в справке? https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Dialogs.ShowMessage procedure ShowMessage(const Msg: string; TaskDlgFlags: TTaskDialogFlags ); здесь тоже этот параметр есть, но описания нет https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Dialogs.MessageDlgPos ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 12:15 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
X11 TTaskDialogFlags type TTaskDialogFlags = set of TTaskDialogFlag; https://docwiki.embarcadero.com/Libraries/Sydney/en/Vcl.Dialogs.TTaskDialogFlag ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 12:29 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
вот интересно, сам столкнулся с подобной ситуацией в Линуксе на Лазарусе (на винде и макоси все нормально). Пришлось перед вызовом модальной формы впендюрить Код: pascal 1. 2. 3.
Похоже на баг, только проявляющийся в хитровывернутом коде. Будет время, сделаю тестовый проект и на форуме лазаря подниму вопрос ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 15:13 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
ну, Док, ты не ровняй LCL и VCL. но Линухе концепция окон совсем не как на Вин. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 15:35 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Мимопроходящийно Линухе концепция окон совсем не как на Вин. Отсутствие системной библиотеки виджетов в Х-сервере, конечно, та ещё проблема, но в остальной части концепции я лично особой разницы не вижу. Что там концептуально другое? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 15:46 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Мимопроходящий, знаю, там вызывающее окно, хоть формально и не имеет фокус, но доступно для захвата мышью. Но в моем случае, оно еще и лежит поверх модального :( ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 15:46 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
X11, https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messagebox Как раз таки у меня - стандартный WinAPI MessageBox :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 16:56 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
DarkMaster, и как его использовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2021, 15:38 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
X11 DarkMaster, и как его использовать? , которую ты приводил, внутри себя. Только без этого всего. А просто передавать туда хэндл окна, которого нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2021, 17:24 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
А еще есть хорошая функция MessageBoxTimeoutA Код: pascal 1.
Позволяет показывать сообщения на протяжении определенного времени ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2021, 23:00 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Шавлюк Евгений Позволяет показывать сообщения на протяжении определенного времени Какой в ней смысл в рамках рассматриваемой темы? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 07:22 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
26.12.2021 23:00, Шавлюк Евгений пишет: > А еще есть хорошая функция MessageBoxTimeoutA оно всё ещё не документировано (хоть и расписано на всех углах). да, оно работает ещё со времён WinXP, но M$ за каким-то хреном её "прячет" в карман. (как и многое другое) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 12:10 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Мимопроходящий 26.12.2021 23:00, Шавлюк Евгений пишет: > А еще есть хорошая функция MessageBoxTimeoutA оно всё ещё не документировано (хоть и расписано на всех углах). да, оно работает ещё со времён WinXP, но M$ за каким-то хреном её "прячет" в карман. (как и многое другое) Блин. А я отдельное приложение малюсенькое использую. В командной строке передаю ему три параметра: заголовок, сообщение, время(сек). Диалог отображается в течении указанного времени, и, если юзер на нажал кнопку - плавно "тает". Удобно, когда программа должна закрыться, напоследок что-то показав, не блокируясь при этом модальным окошком. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 12:29 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
ъъъъъ А я отдельное приложение малюсенькое использую. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 12:41 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
rgreat, они самые. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 12:48 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
Иногда, в целях отладки, нужно выкинуть MessageBox из сервиса. Использую такую функцию Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2021, 21:15 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
YuRock Так же, как его использует "стандартная" функция но в uses нужно подключать какое-то другой модуль вместо Vcl.Forms.TApplication? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 12:10 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
X11 YuRock Так же, как его использует "стандартная" функция но в uses нужно подключать какое-то другой модуль вместо Vcl.Forms.TApplication? X11, посмотрите реализацию Application.MessageBox. (Ctrl + Click) То место, где try ... finally. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 12:30 |
|
Модальный позор
|
|||
---|---|---|---|
#18+
X11 YuRock Так же, как его использует "стандартная" функция но в uses нужно подключать какое-то другой модуль вместо Vcl.Forms.TApplication? MessageBox is an encapsulation of the Windows API MessageBox function Потому - да, надо подключать модуль, содержащий интерфейсы функций Windows API. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2021, 13:16 |
|
|
start [/forum/topic.php?all=1&fid=58&tid=2036750]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
122ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 227ms |
0 / 0 |