Главная страница
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.053 c
4-1074277892
DillerXX
2004-01-16 21:31
2004.03.28
Консольное приложение


14-1077711079
vovan1
2004-02-25 15:11
2004.03.28
Задача про организацию делопроизводства


1-1079000130
Zeus_Chess
2004-03-11 13:15
2004.03.28
РАБОТА С ФАЙЛАМИ В stl - ФОРМАТЕ


1-1078662258
JIruaasgyy
2004-03-07 15:24
2004.03.28
Проблема с загрузкой Excel в TOLEConteiner


3-1077182609
RavenD
2004-02-19 12:23
2004.03.28
утилиты?