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

Вывести сообщения поверх других окон.   Найти похожие ветки 

 
mr.Morra   (2002-01-12 19:44) [0]

КАК вывести сообщение поверх других окон - любых, даже если пользователь в игре?


 
denis_ka   (2002-01-13 19:09) [1]

Исли у игры не слишкой крутой FPS, то можно типа такого:
Timer1 с интервалом 1 (правда будет работат не менее 55), если не устроит, можно использовать более точный таймер вызовами API.

procedure TForm1.Timer1Timer(Sender: TObject);
var DC:HDC;
s:string;
begin
DC:=GetDC(0);
s:="Ura!!!";
textOut(DC,0,0,pchar(s),length(s));
ReleaseDC(0,DC);
end;


 
denis_ka ©   (2002-01-13 20:39) [2]

Вот еще один пример с использованием системного таймера - по-моему, он лучше предыдущего.
(Проверил на: просто Win, Direct3D, DirectDraw, OpenGL)

uses mmsystem;

var
uTimerID:UINT;
time:integer;

procedure TimeProc(uTimerID, uMessage: UINT;dwUser, dw1, dw2: DWORD); stdcall;
var DC:HDC;
s:string;
t:integer;
begin
timeKillEvent(uTimerID); //останавливаем таймер, кто знает может
//из-за запущенной игры отработка этой процедуры займет пол-часа?
DC:=GetDC(0);
t:=GetTickCount;
s:="Hello "+inttostr(t);
textout(DC,0,0,pchar(s),length(s));
ReleaseDC(0,DC);
if t-time<dwUser then uTimerID:=timeSetEvent(1,10,@TimeProc,dwUser,TIME_PERIODIC); //
//восстанавливаем таймер, если еще требуется показывать сообщение
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
uTimerID:=timeSetEvent(1,10,@TimeProc,5000,TIME_PERIODIC);
time:=GetTickCount;
//здесь dwUser = 5000 мс - длительность отображения сообщения
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
timeKillEvent(uTimerID);
end;



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

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



Память: 0.45 MB
Время: 0.005 c
14-32539
AndreyP
2002-01-24 10:59
2002.03.11
Программа


14-32549
PEC
2002-01-21 10:58
2002.03.11
Привет народ,помогите кто может !


7-32598
Ant_bofh
2001-12-04 15:35
2002.03.11
Help !! У меня большой трабл !


6-32522
copyr25
2001-12-25 05:41
2002.03.11
Trace Route


3-32399
ne
2002-02-12 08:09
2002.03.11
unsupported on-disk structure




   Наверх