У меня есть приложение, написанное в основном с совой-библиотекой.
Там я хочу открыть новые vcl-окна из основного окна owl.
Это прекрасно работает, хотя, если диалоговое окно открыто (даже с ShowModal
), и я фокусирую другое приложение, затем главное окно переносится на передний план, но блокируется окном позади него.
Я предполагаю, что проблема заключается в отсутствии родительской установки.
Тем не менее, я не могу конвертировать совы TWindow
к Vcl’s TWinControl
,
Есть ли хитрость, чтобы установить Vcl parent
садясь на сову TWindow
-Объект?
Или это может быть вызвано чем-то совершенно другим?
РЕДАКТИРОВАТЬ:
Я использую…
void(TWindow* parent){
Form=new TForm((HWND)parent->Handle);
Form->ParentWindow=parent->Handle;
Form->BorderIcons >> biMinimize >> biMaximize << biSystemMenu; //No minimize, no maximize, but close
Form->BorderStyle = bsSingle;
Form->Position = poMainFormCenter;
...
Form->ShowModal();
…сейчас.
Однако новое окно заблокировано и не может быть нажато / закрыто / переключено на.
Есть ли что-то, что я пропустил при использовании ParentWindow?
EDIT2:
Я думаю, что это может быть проблемой, что родитель TDecoratedMDIFrame
, который является MDI-контейнером, поэтому мой диалог обрабатывается как mdi-child вместо обычного диалога …
TWinControl
имеет ParentWindow
свойство для указания родительского окна без VCL.
Кроме того, в современных версиях VCL вы можете указать ParentWnd
при отображении диалога VCL.