Приложение
My Delphi изначально запускается с показа основной формы, но только с панелью входа пользователя. Я скрываю главное меню, чтобы неавторизованный пользователь не мог получить к нему доступ. После входа пользователя в систему я динамически назначаю меню, задавая Form.Menu := MyMainMenu;
.
Однако, когда пользователь входит в систему, и я назначаю главное меню, как упомянуто, оно не сразу видно, пока размер формы не будет изменен каким-либо образом. Сворачивание окна и его повторное отображение также запускает отображение главного меню. Однако мне нужно, чтобы он отображался сразу, когда я его назначаю.
Я попытался добавить следующие попытки сразу после назначения главного меню, но без разницы:
Self.Repaint;
Self.Refresh;
Application.ProcessMessages;
Единственное, что я могу сделать, это немного изменить размер формы во время выполнения , затем он запускает показ. Однако это не только небрежно, но и мое приложение по умолчанию отображается в развернутом состоянии.
Примечание: я использую стили VCL. Без стилей показывает просто отлично. Попытка Vcl-Styles-Utils
и его исправлений ничего не меняет.
Как сделать так, чтобы новое назначенное главное меню сразу отображалось без «изменения размера»?
Сбоку обратите внимание, когда я закрываю приложение, у меня возникает утечка памяти:
Без стилей VCL эта утечка памяти не происходит. Не то чтобы я прошу решения для этого, но дополнительный симптом, который может помочь идентифицировать проблему root.