Главная страница
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.022 c
1-1079038884
Lonely_Wolf
2004-03-12 00:01
2004.03.28
RichEdit


9-1062001143
Ландграф Павел
2003-08-27 20:19
2004.03.28
Посмотрите мою игрушку (2D скролл-аркада на DelphiX c исходникам)


11-1056787866
mox
2003-06-28 12:11
2004.03.28
Timer


8-1069395228
Коляныччч
2003-11-21 09:13
2004.03.28
DelphiX AlphaDraw


1-1078499619
raul
2004-03-05 18:13
2004.03.28
создание контекстной справки