Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Какая то фигня с модальными окнами / 10 сообщений из 10, страница 1 из 1
29.08.2019, 15:25
    #39855232
Janex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая то фигня с модальными окнами
Привет всем.
Есть главная MDI апликация, в неи форма, из форми откривается
другаю модальная, от туда откриваем SaveDialog и обана ... ета модальная
уходит ЗА главнои формои. Закриваем SaveDialog и она обратно на своё место ...

Пробовал чистыи демо проект сделать - там всё работает, а в моём проекте неа :(
И ето не только с SaveDialog-ом, есть и другие места, где откривая модальную форму
она вызиваюшую форму заганяет ЗА главнои формои ...
И появилось ето чудо как то тут недавно, но немогу понять изза чего ето оно так.
Кто то непападал в токую фигню ???

WBR
Janex
...
Рейтинг: 0 / 0
29.08.2019, 15:39
    #39855244
ёёёёё
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая то фигня с модальными окнами
Janex,

вроде бы, начиная с D2007, у класса TCommonDialog (родителя Open/Save dlg's) в дополнение к
Код: pascal
1.
    function Execute: Boolean; overload; virtual; 


появилась
Код: pascal
1.
    function Execute(ParentWnd: HWND): Boolean; overload; virtual; abstract; 


Попробуй использовать второй вариант. Укажи хэндл окна формы, в которой диалог создаешь.
...
Рейтинг: 0 / 0
31.08.2019, 22:52
    #39856043
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая то фигня с модальными окнами
Это глюки старых делфи. В последних XE-версиях этого бага быть не должно.
...
Рейтинг: 0 / 0
02.09.2019, 12:53
    #39856245
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая то фигня с модальными окнами
Janexесть и другие места, где откривая модальную форму
она вызиваюшую форму заганяет ЗА главнои формои ...Не связано ли это с тем, что при открытии нового окна выполняется какая-то тяжелая операция?
...
Рейтинг: 0 / 0
02.09.2019, 13:46
    #39856271
Zmeelov2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая то фигня с модальными окнами
Давным-давно, когда D5 приложение разместили на свежеразвернутом сервере Win2008 (работала аппликуха в терминальном режиме), получили именно эту проблему. Вылечилось переустановкой сервера 2008. Просто в порядке информации.
...
Рейтинг: 0 / 0
02.09.2019, 15:28
    #39856336
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая то фигня с модальными окнами
Zmeelov2Вылечилось переустановкой сервера 2008.
"Переустанови винду" - хороший совет, до сих пор часто применяю. В шутку, конечно.

По теме. Я в VCL-ных программах после begin в dpr всегды вызывал эту процедуру:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
// отключает в WinXP и выше механизм Window Ghosting
// тем самым решается проблема с модальными окнами под видимой формой и
// возможностью двигать и закрывать модальные окна не верхнего уровня.
// с другой стороны, если приложение действительно занято, то убивать его придется
// с помощью дистпетчера задач.
procedure DisableWindowsGhosting;
var
  User32: HMODULE;
  DisableProcessWindowsGhosting: procedure;
begin
  User32:=GetModuleHandle('USER32');
  if User32<>0 then begin
    DisableProcessWindowsGhosting:=GetProcAddress(User32,'DisableProcessWindowsGhosting');
    if assigned(DisableProcessWindowsGhosting) then
      DisableProcessWindowsGhosting;
  end;
end;


И таких проблем не имел.
...
Рейтинг: 0 / 0
02.09.2019, 15:55
    #39856350
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая то фигня с модальными окнами
02.09.2019 15:28, YuRock пишет:
> Я в VCL-ных программах после begin в dpr всегды вызывал эту процедуру:

это не для ЭТОГО
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
02.09.2019, 16:05
    #39856357
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая то фигня с модальными окнами
Мимопроходящий,

Возможно. Но мне помогало при этих симптомах.
...
Рейтинг: 0 / 0
02.09.2019, 16:08
    #39856358
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая то фигня с модальными окнами
авторDisables the window ghosting feature for the calling GUI process. Window ghosting is a Windows Manager feature that lets the user minimize, move, or close the main window of an application that is not responding.
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-disableprocesswindowsghosting

А делает винда это, фотографируя текущее окно. И когда апприкуха развисает, то, похоже, активирует его.
...
Рейтинг: 0 / 0
02.09.2019, 16:57
    #39856384
Кроик Семён
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Какая то фигня с модальными окнами
JanexЕсть главная MDI апликация, в неи форма, из форми откривается
другаю модальная, от туда откриваем SaveDialog и обана ... ета модальная
уходит ЗА главнои формои. Закриваем SaveDialog и она обратно на своё место ...

такое может быть, если вызов SaveDialog'а происходит из окна, которое имеет на панели задач (дополнительно к главному приложению) свою отдельную кнопку, т.е. это модальное окно было создано так как-то:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
type
  TMyToolDialog = class(TForm)
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  end;

procedure TMyToolDialog.CreateParams(var Params: TCreateParams);
begin
   inherited CreateParams(Params);

   Params.ExStyle:=Params.ExStyle or WS_EX_APPWINDOW;
   Params.WndParent:=GetDesktopWindow();
end;
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Какая то фигня с модальными окнами / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]