Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.03.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.03.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.004 c
6-32537
Sour
2001-12-24 03:55
2002.03.11
SMTP


1-32513
Геральт
2002-02-24 22:58
2002.03.11
Работа с OLE контейнером


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


7-32600
Swan70
2001-11-28 10:37
2002.03.11
Кто захватил файл


1-32456
Deniska
2002-02-22 10:08
2002.03.11
Автоинкремент номера <B>билда</B>.................................





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский