Форум: "Основная";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];
ВнизВсплывающее окно не видно Найти похожие ветки
← →
Vulix © (2006-11-06 08:52) [0]Привет всем.
Ситуация такая. Есть главная форма и есть всплывающая форма, которая просто время от времени показывает различную информацию. Эта форма показывается поверх всех окон.
Проблема в том, что если главная форма свернута в трэй, то всплывающую форму не видно...она сворачивается вместе с главной...
Как бы мне добиться, чтобы всплывающая форма всегда показывалась на экране, не в зависимости от главной.
Всплывающую форму показываю обычным методом Show.
← →
Elen © (2006-11-06 09:32) [1]
> Vulix
когда ее создаеш Попробуй ей в парент задать рабочий стол.
← →
Percent (2006-11-06 09:50) [2]когда ее создаеш Попробуй ей в парент задать рабочий стол
Parent... TWinControl... рабочий стол... Handle...
*озадаченный блуждающий взгляд*
← →
Vulix © (2006-11-06 09:53) [3]сделал так
...
procedure CreateParams(VAR Params: TCreateParams); override;
...
procedure TpopupF.CreateParams(VAR Params: TCreateParams);
begin
Inherited CreateParams(Params);
// Params.ExStyle := Params.ExStyle or (not WS_EX_APPWINDOW);
Params.WndParent := GetDesktopWindow;
end;
Но теперь другая проблема... на панели задач появляется кнопка у формы, а мне этого не надо
← →
Elen © (2006-11-06 10:03) [4]
> Percent
=TForm1.CreateParented(GetDesktopWindow);
> на панели задач появляется кнопка у формы, а мне этого не
> надо
Может поможет Application.ShowMainForm:=false ?
← →
Vulix © (2006-11-06 10:11) [5]
> Может поможет Application.ShowMainForm:=false ?
Нет, главная форма тут ни при чем, на панели появляется две кнопки, одна главной формы, а другая принадлежит всплывающей.
Я добился следующего, делаю у всплывающей формы так:
k:=GetWindowLong(popupF.Handle, GWL_EXSTYLE);
k:=k or (WS_EX_APPWINDOW);
SetWindowLong(popupF.Handle,GWL_EXSTYLE,k);
Тогда кнопки на панели не появлятся...но блин, зато форма теряет свои свойства, появляется какая то рамочка вокруг толщиной в наверное 5 пикселей
← →
Vulix © (2006-11-06 10:12) [6]Ошибка, следует читать
...
k:=k or (NOT WS_EX_APPWINDOW);
...
← →
Percent (2006-11-06 10:16) [7]TForm1.CreateParented(GetDesktopWindow);
А какое значение возвращает GetDesktopWindow?
← →
Vulix © (2006-11-06 10:25) [8]Спасибо всем.
Вроде бы проблема решилась следующей строчкой
SetWindowLong(popupF.Handle,GWL_EXSTYLE,GetWindowLong(popupF.Handle, GWL_EXSTYLE) or (WS_EX_TOOLWINDOW));
← →
Elen © (2006-11-06 10:25) [9]
> А какое значение возвращает GetDesktopWindow?
А в SDK глянуть?
← →
Percent (2006-11-06 10:37) [10]А в SDK глянуть?
Ну и зачем? Чтобы узнать, что GetDesktopWindow возвращает 0 во всех версиях Windows, включая Vista? И сделать вывод, что, так как 0 не является валидным Handler"ом, то CreateParented(0) - имеет столько же смысла, как и Create(nil)...
← →
MetalFan_pda (2006-11-06 10:43) [11]Vulix © (06.11.06 10:12) [6]
Ошибка, следует читать
...
k:=k or (NOT WS_EX_APPWINDOW);
тебе флаг надо сбросить? тогда or на and замени
← →
Elen © (2006-11-06 10:44) [12]
> GetDesktopWindow возвращает 0 во всех версиях Windows
Что-то новенькое. У меня возвращает не 0
← →
Percent (2006-11-06 10:53) [13][12] Elen © (06.11.06 10:44)
В военное время значение синуса может достигать 4.
← →
Vulix © (2006-11-06 11:20) [14]У меня возвращает значение 65556
← →
MetalFan © (2006-11-06 22:21) [15]прочитай [11], подумай. у тебя бред написан имхо
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.046 c