Форум: "Основная";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];
ВнизНарисовать поверх Найти похожие ветки
← →
hogo (2002-11-11 06:39) [0]Кто знает как, допустим выводить время, поверх всего, для примера можно использовать PowerStrip, выводит информацию о экране поверх всего.
← →
Separator (2002-11-11 08:08) [1]Поверх чего? Поверх в чем?
← →
hogo (2002-11-11 08:13) [2]Поверх игр, поверх окон, любого приложения!
← →
Separator (2002-11-11 08:18) [3]повер окон еще можно, а вот повер игр нельзя (точнее только на некоторых можно). Сделай у формы FormStyle:= fsStayOnTop
← →
hogo (2002-11-11 09:48) [4]FormStyle:= fsStayOnTop - не помогает.
PowerStrip ведь пришет поверх игр, как?
← →
Separator (2002-11-11 10:27) [5]прикинься драйверо видеокарты
← →
Александр Павлов (2002-11-11 10:28) [6]Попробуй так:
TForm1 = class(TForm)
...
protected
procedure CreateParams(var Params: TCreateParams); override;
...
end;
...
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.ExStyle := WS_EX_TOOLWINDOW or WS_EX_TOPMOST;
Params.Style := WS_POPUP or WS_BORDER;
Params.WndParent := GetDesktopWindow; //!
end;
или так:
SetWindowPos(Form1.Handle, HWND_TOPMOST, x, y, cx, cy, SWP_SHOWWINDOW);
или 2й вариант с учётом возможных изменений разрешения экрана:
TForm1 = class(TForm)
...
protected
procedure WndProc(var Message: TMessage); override;
...
end;
...
procedure TfrmBlock.WndProc(var Message: TMessage);
begin
with Message do
case Msg of
WM_DISPLAYCHANGE: begin
// Здесь необходимо произвести необходимые расчёты,
// связанные с координатами формы на экране с учётом
// новых размеров экрана:
// wParam - сод. нов. глубину цвета
// LOWORD(lParam) - сод. нов. ширину экрана в пикс.
// HIWORD(lParam) - сод. нов. высоту экрана в пикс.
...
x := ;
y := ;
cx := ;
cy := ;
...
//
SetWindowPos (Form1.Handle, HWND_TOPMOST, x, y, cx, cy, SWP_SHOWWINDOW);
end;
end;
inherited WndProc(Message);
end;
← →
hogo (2002-11-11 12:24) [7]2Александр Павлов
Первая функция прикольная сегодня вечером испробую :)
← →
hogo (2002-11-13 11:38) [8]И всетаки это не то, мне необходимо навроде как нарисовать на Canvas приложения.
Я понимаю этонадо сделать так:
1. найти активное в данный момент окно
2. найти на чем оно сейчас рисует
3. вывести
Правильно я думаю или нет?
← →
hogo (2002-11-13 11:54) [9]Вот процедура, достаточно повторять ее в цикле, или в таймере:
procedure DeskTopPaint;
var
DeskTop:TCanvas;
begin
DeskTop:=TCanvas.Create;
try
DeskTop.Handle:=GetDC(0);// Получим Handle Рабочего стола
DeskTop.Brush.Style:=bsClear; // Устанавливаем тип кисти
With DeskTop.Font do // Подбираем шрифт
Begin
Color:=clRed;
Size:=40;
Name:="Times New Roman";
Style:=[fsBold];
end;
DeskTop.TextOut(10,10,"Сегодня : "+DateToStr(Now));
ReleaseDC(0, DeskTop.handle);
finally
DeskTop.Free; // Уберем за собой
end;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.014 c