Как отобразить модальную форму поверх формы-владельца (для ее владельца установлено значение fsStayOnTop или нет), как это делает TOpenDialog

Обобщение:

См. Полезные комментарии ниже от Крейга и Сертака.

============================== ==========================

Как показано в следующем минимизированном коде, TForm10 имеет значение fsStayOnTop . TForm10.btnTryDlgClick вызывает dlgOpen1.Execute , и отображается диалоговое окно, как и ожидалось. Однако, когда я вызываю TForm11.Create (Self) .ShowModal внутри TForm10.btnTryFormClick , форма скрывается за TForm10. Мне интересно, как понять это поведение и почему стандартный TOpenDialog может отображаться так, как ожидалось? Любые комментарии приветствуются!

PS: Один из способов обхода - переопределить процедуру CreateParams TForm11 и установить Params.wndParent равным 0. Но мне кажется, что с помощью этого обходного пути иерархия окон будет нарушена.

  procedure TForm11.CreateParams(var Params: TCreateParams); // override;
  begin
    inherited;
    params.wndParent := 0;
  end;

PS: Другой обходной путь упоминается Реми на соответствующих страницах SO: установка свойства PopupParent модальной формы на форму StayOnTop . Но в следующих комментариях Сертак упомянул, что этот обходной путь также нарушит иерархию окон.

PS: Возможно релевантные страницы SO: «Origin null не разрешен Access-Control-Allow-Origin» при загрузке файла XML с помощью метода ajax JQuery Это мой код: this.loadMap = function () {this._map = null; this._width = 0; this._height = 0; this._playerX = 0; this._playerY = 0; this.finished = false; this.loaded ...

Это мой код:

this.loadMap = function () {
    this._map = null;
    this._width = 0;
    this._height = 0;
    this._playerX = 0;
    this._playerY = 0;
    this.finished = false;
    this.loaded = false;
    $.ajax({
        type: "GET",
        url: "maze1.xml",
        dataType: "xml",
        success: this.parseXmlMap,
        context: this
    });
};

Я получаю ошибку

"XMLHttpRequest не может загрузить файл: /// C: /wamp/www/mazegame/maze1.xml. Нулевое значение происхождения не допускается Access-Control-Allow-Origin ».

Этот же сценарий отлично работает в Firefox

15
задан Stecya 22 March 2011 в 19:20
поделиться