Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Вниз

При Application.Minimize оставляем одно окно в OnTop   Найти похожие ветки 

 
Chlavik ©   (2004-03-11 03:40) [0]

Делаю так ...


procedure TfmTrafficGraphic.CreateParams(var Params: TCreateParams);
begin
 inherited;
 Params.Style:=ds_setfont or ws_popup;
 Params.ExStyle:=ws_ex_clientedge or ws_ex_dlgmodalframe or ws_ex_topmost;
end;

procedure TfmTrafficGraphic.WMShowWindow(var Message: TWMShowWindow);
begin
if Message.Status=SW_PARENTCLOSING then
 SetWindowPos(Handle,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE or SWP_NOMOVE);
// inherited
end;

procedure TfmTrafficGraphic.WMSysCommand(var Message: TWMSysCommand);
begin
if Message.CmdType<>SC_MINIMIZE then inherited;
end;


Через WMShowWindow я добился что бы окно оставалось в онтопе при сврчивании проги, но при клике на чужую прогу окно теряет ws_ex_topmost. Как с этим боротся ??? Это окно не главное окно программы и показывается не модально...


 
Defunct ©   (2004-03-11 04:01) [1]

Чудесно находится в OnTop, постоянно.

С приведенным Вами кодом, не главная форма не теряет ws_ex_topmost по клику на другую программу. Смотрите, может Вы где-то в коде сами убираете этот параметр.


 
Chlavik ©   (2004-03-11 16:52) [2]

Дедло в том что у мен стоял fsStayOnTop а Application выполняет
NormalizeTopMost НА данный момент самый оптимальный код который мен более менее подходит ..
procedure TfmTrafficGraphic.CreateParams(var Params: TCreateParams);
begin
 //Self.FormStyle:=fsNormal;
 inherited;
 Params.WndParent:=Application.MainForm.Handle;
 Params.Style:=ds_setfont or ws_popup;
 Params.ExStyle:=ws_ex_clientedge or ws_ex_dlgmodalframe or ws_ex_topmost;
end;

procedure TfmTrafficGraphic.WMActivateApp(var Message: TWMActivateApp);
begin
if Message.Active then
 begin//if  Message.ThreadId=GetCurrentThreadId then
  SetWindowPos(Handle,HWND_TOPMOST, 0,0,0,0,SWP_NOSIZE  or SWP_NOMOVE);
//   application. RestoreTopMosts;
//    application.BringToFront;
 end
else
 begin
   //application.BringToFront;
   inherited;//}
 end;
end;


Но если все это ддело вместе с какойто Модальной формой свернуть а потом развернуть то  всё пашет нормально - TfmTrafficGraphic всегда поверх всех окон даже когда прога свёрнута, но модальная форма просто теряется позади главного окна после того как развараиваеш прогу.


 
Chlavik ©   (2004-03-11 16:53) [3]

Как правильно это сделать ??



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.034 c
14-1077777849
sea
2004-02-26 09:44
2004.03.28
Нужно откомпилять прогу под Unix


1-1078673204
Алексей
2004-03-07 18:26
2004.03.28
Показ формы при координатах курсора 0;0


1-1078418270
Rim
2004-03-04 19:37
2004.03.28
FontColor Memo


14-1078162185
Igor_thief
2004-03-01 20:29
2004.03.28
CheckListBox


7-1071440391
Olegator_o
2003-12-15 01:19
2004.03.28
Как узнать о положении лотка СD-ROM





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский