Обобщение:
См. Полезные комментарии ниже от Крейга и Сертака.
============================== ==========================
Как показано в следующем минимизированном коде, 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