Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.17;
Скачать: CL | DM;

Вниз

Всплывающее окно не видно   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.055 c
15-1164719102
Gero
2006-11-28 16:05
2006.12.17
У кого есть книга Ф. Юань — Программирование графики для Windows


15-1164285460
Vera
2006-11-23 15:37
2006.12.17
Программа


11-1141342016
Dimaxx
2006-03-03 02:26
2006.12.17
Может я не так делаю?...


11-1140304918
z007
2006-02-19 02:21
2006.12.17
DB компоненты


15-1164625750
Rule
2006-11-27 14:09
2006.12.17
Является ли 95 виндовз (в частности OSR2) бесплатным ...