Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.25;
Скачать: CL | DM;

Вниз

Нарисовать поверх   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
14-82979
DeMoN-777
2002-11-07 04:45
2002.11.25
Бобровский


1-82859
Andrej
2002-11-14 14:15
2002.11.25
цыклы


1-82798
Comp
2002-11-12 19:50
2002.11.25
Инсталляция


8-82875
farhad
2002-07-22 16:45
2002.11.25
Нужны ресурсы


4-83070
SVM
2002-09-29 08:05
2002.11.25
Народ как на WinAPI сделать скриншот желательно в jpeg?