![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
без asmы [D6, Win95/98]
ATLANTIDO © (2002-03-09 00:11:00)Наверное Вы все видели как программа-клиент администрирования
комп. клуба выдает за пять минут до окончаня времени предупреждение типа, - "Осталось 5 минут !!! :)". А возможно
ли такое такое провернуть средствами Delphi (winApi), не используюя прямую запись в видеобуфер ?
ION T (2002-04-11 21:56:00) [1]Попробуй что-то типа:
procedure TForm1.Button1Click(Sender: TObject);
var
PenHandle, OldPenHandle: HPEN;
PaintDC : HDC;
FontHandle, OldFontHandle : HFont;
words1 : PChar;
begin
PaintDC:=GetDC(0);
FontHandle := CreateFont(50, 0, 0, 0, 700, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, nil);
OldFontHandle := SelectObject(PaintDC, FontHandle);
words1 := "
SerVS (2002-04-11 10:18:00) [2]>если игра не обновляет свой..
Ты такое видел?
Сначала скопировать ту область куда собираешься выводить в буфер (какой-нибудь). Потом вывести надпись. Потом вывести картинку из буфера.
ATLANTIDO (2002-03-09 19:30:00) [3]Делаю так :
procedure TForm1.Button1Click(Sender: TObject);
var
PenHandle, OldPenHandle: HPEN;
PaintDC : HDC;
FontHandle, OldFontHandle : HFont;
words1 : PChar;
begin
PaintDC:=GetDC(0);
FontHandle := CreateFont(50, 0, 0, 0, 700, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, nil);
OldFontHandle := SelectObject(PaintDC, FontHandle);
words1 := "Осталось 5 минут";
TextOut(PaintDc,10,10, words1, 16);
SelectObject(PaintDC,OldFontHandle);
DeleteObject(FontHandle);
end;
А как затереть эту надпись ? Ведь если игра не обновляет свой
экран, этот меседж будет висеть еще долго.
ATLANTIDO (2002-03-09 17:47:00) [4]Понял, спасибо попробую.
VuDZ (2002-03-09 16:15:00) [5]открою секрет: ты не можешь напрямую писать в видео-буфер, это не ДОС.
Тебе надо искать в районе DirectDraw или topmost-window
Можно ещё рисовать на GetDC(0), это экран, но не знаю, как к этому отнесуться игры, хотя попробовать можно
ATLANTIDO (2002-03-09 15:51:00) [6]Помогите !