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