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

Вниз

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

Наверх




Память: 0.47 MB
Время: 0.046 c
1-1078943860
TSa
2004-03-10 21:37
2004.03.28
ActionMainMenuBar


6-1073650574
Addon
2004-01-09 15:16
2004.03.28
Как организовать обмен данными между несколькими компами?


14-1077790429
Иксик
2004-02-26 13:13
2004.03.28
Знатокам шахматного софта


4-1073138516
GrayFace
2004-01-03 17:01
2004.03.28
Как взять ширину символа, отступ до и отступ после него.


14-1077787909
Димитриев С.
2004-02-26 12:31
2004.03.28
Выбор системы для серверного приложения