Главная страница
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.026 c
1-82855
Roman_Tutov
2002-11-14 12:40
2002.11.25
записать файл вкомпилированный в экзешник на винт


3-82587
Mic_2000
2002-11-08 12:26
2002.11.25
Можно ли в IB вместо типа Date использовать TimeStamp


3-82621
Akella
2002-11-05 08:04
2002.11.25
нужен логер под IB


3-82678
ton2
2002-11-06 14:30
2002.11.25
Использование Access-базы из Delphi


6-82888
qqqqq111
2002-09-19 05:32
2002.11.25
Download manager для LAN