|
Модальный позор
|
|||
---|---|---|---|
#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 |
|
|
start [/forum/topic.php?fid=58&msg=40121596&tid=2036750]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 154ms |
0 / 0 |