|
FormShow задержка
|
|||
---|---|---|---|
#18+
Добрый день, подскажите, есть форма настроек (грузятся из ini-файла), на ней расположены radiogroup rgParam1, rgParam2 и т.д. Проблема в том, что некоторые элементы radiogroup не успевают инициализироваться, а форма уже показывается с неправильными настройками radiogroup. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Проблема в том, что форма отображается раньше чем грузятся параметры в LoadParam. Если раскоментировать //ShowMessage('test'); тогда форма успевает отобразить параметры загруженные из Ini файла в radiogroup. Каким образом правильнее избежать такого поведения? Пробовал Application.ProcessMessage добавить в TFrmParam.LoadParam это не привело к результату. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 10:20 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
wsnet, Не верю ни одному слову. Впрочем, LoadParam вызывать надо в FormCreate. Хотябы потому, что FormShow может вызываться несколько раз. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 10:26 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
YuRock, ваше право верить или нет, нет форма глобальная и в create я вызвать loadparam не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 12:01 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
wsnet, осталось показать код создания и отображения формы и народ подтянется и накидает ошибок... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 12:22 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
wsnet форма глобальная и в create я вызвать loadparam не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 12:33 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
Как только закрываю форму FrmParam (крестик), параметры меняются, а не должны. На OnClose и onCreate - пусто. type TFrmParam = class(TForm) public Param1: Integer; .... Param20: Integer; var FrmParam: TFrmParam; implementation Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 13:32 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
wsnetКак только закрываю форму FrmParam (крестик), параметры меняются, а не должны. Ты всерьёз думаешь, что здесь кто-то способен догадаться что именно из приведённого кода ты называешь словом "параметры" и где/каким манером они "меняются"? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 14:09 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
Покажите тот кусок кода, где вы вызываете PostMessage и расскажите, зачем вы это делаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 14:59 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
wsnet Проблема в том, что форма отображается раньше чем грузятся параметры в LoadParam Это в высшей степени странное утверждение. Оно противоречит и спецификации OnShow, и его реализации, и за четверть века программирования на Дельфи я не видел, чтобы такое происходило без сознательной реализации именно такого поведения. Форма MDI-ная или обычная? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 15:52 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
softwarer, обычная форма. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 18:36 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
softwarer wsnet Проблема в том, что форма отображается раньше чем грузятся параметры в LoadParam Это в высшей степени странное утверждение. Оно противоречит и спецификации OnShow, и его реализации, и за четверть века программирования на Дельфи я не видел, чтобы такое происходило без сознательной реализации именно такого поведения. Форма MDI-ная или обычная? А так-то это не важно. MDI тоже показываются после OnShow, и чайлды и клиент. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 18:38 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
wsnet softwarer, обычная форма. Тогда вариант один - попробуйте сделать маленький упрощённый демо-проект, где сохраняется этот эффект и который можно здесь опубликовать. Скопируйте свой проект, повыкидывайте из него другие формы, повыкидывайте из этой лишний код - и проверяйте, что эффект сохраняется. Если он вдруг исчезнет - внимательно посмотрите, что Вы выкинули. Если сохранится до конца - публикуйте, поковыряем. YuRock А так-то это не важно. MDI тоже показываются после OnShow, и чайлды и клиент. У MDI-ных Visible связан с Create, и это вносит в процесс определённую путаницу. Поэтому на всякий случай спросил, вдруг там чего намудрили. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 18:47 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
wsnet Проблема в том, что некоторые элементы radiogroup не успевают инициализироваться Кто и когда меняет ini? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 19:40 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
[quot softwarer#22390689] wsnet softwarer, обычная форма. Тогда вариант один - попробуйте сделать маленький упрощённый демо-проект, где сохраняется этот эффект и который можно здесь опубликовать. Скопируйте свой проект, повыкидывайте из него другие формы, повыкидывайте из этой лишний код - и проверяйте, что эффект сохраняется. Если он вдруг исчезнет - внимательно посмотрите, что Вы выкинули. Если сохранится до конца - публикуйте, поковыряем. если cxRadioGroup то все хорошо, если просто TRadioGroup то плохо. https://disk.yandex.ru/d/Tz2-uvEQeuSGVA ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 21:34 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
// MDI тоже показываются после OnShow, и чайлды и клиент. Ога, но: у обычной срабатывает ОнКриейт , потом ОнШоу , у МДИ сначала срабатывает ОнШоу , а потом ОнКриейт . Кажется странным, но это вполне логично. И незнание этого иногда приводит к неприятным ошибкам. Н-р в формах, которые могут быть и модальными и МДИ (переделан конструктор). ... |
|||
:
Нравится:
Не нравится:
|
|||
31.10.2021, 22:20 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
авторПроблема в том, что некоторые элементы radiogroup не успевают инициализироваться, а форма уже показывается с неправильными настройками radiogroup. wsnet вы путаете инициализацию с визуальной отрисовкой компонента/контрола. Инициализируются-то они вовремя, а вот отрисовка запаздывает. О чём вам и говорит разница между Tcx и обычным контролом. Так что у вас два варианта. Либо вы используете Tcx, либо пишете свой контрол. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 02:30 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
DimaBr, вы привели скриншот уже открытой формы. И там всё нормально. Но если вы внимательно посмотрите показ открывания формы, то увидите что в момент показа выбранное значение TRadioGroup не такое, которое должно быть. Через несколько долей секунды оно принимает правильное значение. Вероятно именно это и нервирует ТС. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 02:41 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
wsnet Как только закрываю форму FrmParam (крестик), параметры меняются, а не должны. На OnClose и onCreate - пусто. type TFrmParam = class(TForm) public Param1: Integer; .... Param20: Integer; var FrmParam: TFrmParam; implementation Код: 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.
А ты случайно не сохраняешь параметры на OnClick у rgParam1, rgParamX ... ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 13:48 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
northener Через несколько долей секунды оно принимает правильное значение. Простите, я несколько долей секунды глазом не воспринимаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.11.2021, 18:58 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
wsnet, лабуда какая-то. FormShow не надо трогать. И Load и UpdateParams должны вызываться в FormCreate, и не будет никакого моргания. В противном случае поставьте брейкпойнт на вашем коде в FormShow, и вы задолбаетесь F8 в отладчике нажимать. Это же окно с параметрами, которые грузятся из файла. Оно показываться должно с УЖЕ загруженными и установленными параметрами. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2021, 02:00 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
2 DimaBr Человеческий глаз не замечает изменений картинки происходящих за менее ~2мс. А тут примерно 0.5 секунды. Даже я их замечаю, хотя я всего на три года моложе ЮЗ. Правда в отличии от ЮЗ у меня уже три года как глаза искусственные. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2021, 02:09 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
kdv wsnet, лабуда какая-то. FormShow не надо трогать. И Load и UpdateParams должны вызываться в FormCreate, и не будет никакого моргания. В противном случае поставьте брейкпойнт на вашем коде в FormShow, и вы задолбаетесь F8 в отладчике нажимать. Это же окно с параметрами, которые грузятся из файла. Оно показываться должно с УЖЕ загруженными и установленными параметрами. У ТС форма создаётся только один раз. В дальнейшем несколько раз вызывается её ShowModal. Вы считаете это неправильным? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2021, 02:14 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
kdv, не, я наврал. Давно Дельфи в руках не держал. Глянул свой код, у меня сделано так: Код: pascal 1. 2. 3. 4.
В UpdateControls действительно всем контролам присваиваются значения параметров. В FormCreate только "подготовительные" действия. Параметры считываются сразу при старте приложения. Форма параметров создается по кнопке в меню. И форма показывается как диалог (ShowModal). При этом ничего не "моргает", и никогда не моргало, я не знаю, почему. И контролов на этой форме штук тридцать, плюс цветные TLabel. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2021, 02:52 |
|
FormShow задержка
|
|||
---|---|---|---|
#18+
У меня никакого моргания нет. Ни так, как написал автор, ни в случае, если меняю на Код: pascal 1.
На всякий случай записал видео и проверил на покадровой промотке - не моргает. Возможно, дело в темах, скинах и прочей хрени. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2021, 03:09 |
|
|
start [/forum/topic.php?fid=58&msg=40108594&tid=2036914]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 286ms |
total: | 430ms |
0 / 0 |