Вниз
Скачать: CL | DM;

Как вывести сообщение поверх всех окон   Найти похожие ветки 

 
konstantinov ©   (2004-05-04 09:48) [0]

Собственно сабж.
Программа ограничивает время работы на компьютере. Перед завершение работы вываливает сообщение, мол, закругляйся.
Все ничего, но нижеприведенный код не работает для полноэкранных приложений ( игры, фар-менеджер и пр. )

procedure ShowMSG ( const MSG : string );
 var Form     : TForm;
     I,J      : integer;
     Tick     : DWORD;
     h,m,s,ms : word;
begin
 DecodeTime(PauseExit,h,m,s,ms);
 Tick := ms + s * 1000 + m * 60000 + h * 36000000;
 for I := 0 to Tick div 1000 do
 begin
   Form := CreateMessageDialog(MSG + #13 + FormatDateTime("Компьютер будет выключен через hh:nn:ss",Time - TimeExit),mtWarning,[]);
   Form.FormStyle := fsStayOnTop;
   Form.BorderIcons := [];
   ShowWindow(Form.Handle,SW_SHOWNOACTIVATE );
   for J := 0 to 9 do
   begin
     Sleep(100);
     Application.ProcessMessages;
   end;
   Form.Free;
 end;
end;


Посоветуйте, как это обойти.
Заранее благодарен.


 
Yanis ©   (2004-05-04 10:46) [1]

Как вариант, можно просто сказать окну WM_CLOSE.
Или же что бы не потерять, например сохранёнки в игре можно её свернуть.

Может мой метод не красивый, но.... работает. И очень хорошо :)

На форме Timer, с интервалом 1.

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 with form1 do
   begin
     FormStyle := fsStayOnTop;
     show;
   end;
end;


 
Yanis ©   (2004-05-04 10:46) [2]

Как вариант, можно просто сказать окну WM_CLOSE.
Или же что бы не потерять, например сохранёнки в игре можно её свернуть.

Может мой метод не красивый, но.... работает. И очень хорошо :)

На форме Timer, с интервалом 1.

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 with form1 do
   begin
     FormStyle := fsStayOnTop;
     show;
   end;
end;


 
DVM ©   (2004-05-04 12:30) [3]


> konstantinov ©   (04.05.04 09:48)  

Не надо так делать. Если окно игры потеряет фокус, то начнутся страшные глюки во многих играх. Попробуй по таймеру рисовать свое сообщение на GetDC(0);



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.036 c
1-1082980938
Дас Виндовс 45
2004-04-26 16:02
2004.05.16
Как определить язык, используемый по умолчанию?


8-1077906454
Magician_g
2004-02-27 21:27
2004.05.16
Как из avi сделать набор bmp


1-1083069246
Kraj
2004-04-27 16:34
2004.05.16
QReport


1-1083158674
Николай
2004-04-28 17:24
2004.05.16
Как заменить значок программы?


4-1080228728
Prov
2004-03-25 18:32
2004.05.16
SetWindowText - поменять Caption елементов управления




   Наверх