| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > ShowWindow: не отображаются компоненты на форме |
| Автор: MyasNick 18.2.2009, 19:08 |
| Довольно странная проблема: показываю форму (fsStayOnTop, bsNone) функцией ShowWindow(frmForm.Handle, SW_SHOWNOACTIVATE); UpdateWindow(frmForm.Handle); когда форма появляется, на ней не видно ни одного компонента, созданного в дизайнтайм, кроме шейп и бевел. Не отображаются ни панели, ни кнопки ни все остальное. Если сделать frmForm.Show все нормально. Подскажите, пожалуйста, куда копать. |
| Автор: MetalFan 18.2.2009, 19:56 |
| а нельзя так с VCL контролами и формами поступать. они этого не простят) хочешь WinApi - пиши окно на WinApi |
| Автор: MyasNick 18.2.2009, 20:24 |
| Спасибо за такой подробный и содержательный ответ! ;) Не то чтобы я сильно хотел голый WinAPI (если бы хотел, не пользовался бы Delphi), просто я не знаю другого способа показать окно не активируя его, кроме упомянутого ShowWindow в связке с SW_SHOWNOACTIVATE. Если знаете, поделитесь, пожалуйста. |
| Автор: MetalFan 18.2.2009, 22:32 |
| а если сначала вызывать Show (чтобы корректно отработала VCL часть) а потом ShowWindow с нужными параметрами? |
| Автор: bems 18.2.2009, 22:37 | ||
попробуй
|
| Автор: MyasNick 24.2.2009, 16:45 | ||||||
Да, я сейчас так и делаю: Width/Height в ноль, затем Show и сразу Hide. Не красиво, конечно, но после этого ShowWindow работает нормально. Добавлено через 49 секунд
Спасибо, но, к сожалению, не помогает. |
| Автор: Rrader 24.2.2009, 18:03 | ||
|
| Автор: MyasNick 24.2.2009, 18:24 | ||||
Все гениальное просто! Помогло, спасибо большое. |