Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: 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 вся ветка

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.039 c
3-1082081449
Slavik_v
2004-04-16 06:10
2004.05.16
Как поменять цвет определенной строки в DBGrid?


1-1083509511
Pensioner
2004-05-02 18:51
2004.05.16
GetCurrentDir, а может что нибудь другое


14-1082641309
Digitman
2004-04-22 17:41
2004.05.16
Конструктивный же диалог ? Или - нет ? в тему LMD ... или НЕ LMD


3-1082096661
Новик
2004-04-16 10:24
2004.05.16
Сложный отчет в FastReport


9-1071409745
ZAROLF
2003-12-14 16:49
2004.05.16
Нужен совет к 2D аркаде!