У меня есть приложение Delphi 7, у которого есть два представления документа (например, редактирование WYSIWYG HTML может иметь представление WYSIWYG и представление источника - не мое реальное приложение). Их можно открыть в отдельных окнах или закрепить на вкладках в главном окне.
Если я открою модальное диалоговое окно из одной из отдельных форм, основная форма переносится на передний план и отображается как выбранное окно на панели задач Windows. Скажем, основной формой является представление WYSIWYG, а исходное представление выскакивает. Вы переходите к определенной точке в исходном представлении и вставляете тег изображения. Появится диалоговое окно, позволяющее вам выбрать и ввести свойства, которые вы хотите для изображения. Если вид WYSIWYG и вид источника перекрываются, вид WYSIWYG будет переведен вперед, а вид источника скрыт. Как только диалог закрывается, исходный вид возвращается в поле зрения.
Я попытался установить владельца и свойства ParentWindow в форме, с которой он связан:
dialog := TDialogForm.Create( parentForm );<br>
dialog.ParentWindow := parentForm.Handle;
Как я могу исправить эту проблему? Что еще я должен пытаться?
Учитывая, что люди, похоже, спотыкаются о моем примере, возможно, я могу попробовать лучший пример: текстовый редактор, который позволяет одновременно открывать более одного файла. Открытые вами файлы находятся либо во вкладках (как в Delphi IDE), либо в своем собственном окне. Предположим, что пользователь вызывает диалог проверки правописания или диалог поиска. Что происходит, если файл редактируется в своем собственном окне, то это окно отправляется ниже основной формы в z-порядке, когда отображается модальное диалоговое окно; как только диалоговое окно закрыто, оно возвращается в свой первоначальный z-порядок.
Примечание : Если вы используете Delphi 7 и ищете решение этой проблемы, см. Мой ответ ниже на странице, чтобы увидеть, что я в итоге сделал.