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

Вниз

надпись на рабочем столе   Найти похожие ветки 

 
глупый   (2003-01-07 21:21) [0]

Народ, скажите, можно ли написать программу, которая бы просто выводила надпись на рабочий стол (поверх ярлыков, окон и т.д.) и всё. И чтобы ни каких объктов, форм (даже прозрачных). Понятно, что эта надпись, при появлении поверх неё, например, окна, затрётся.


 
Song ©   (2003-01-07 21:27) [1]

With TCanvas.Create Do
try
Handle:=GetDC(HWND_DeskTop);
TextOut(Screen.Width div 2,Screen.Height div 2,"Writing on the desktop");
finally
Free;
end;


 
глупый   (2003-01-07 21:55) [2]

Прошу прощения, но куда это писать?
У меня ругается, что GetDC - недекларированный идентификатор.


 
Song ©   (2003-01-07 22:00) [3]

Нужен hands.sys


 
глупый   (2003-01-07 22:14) [4]

А где мне его можно достать?


 
Геннадий ©   (2003-01-07 22:14) [5]

function GetDC; external user32 name "GetDC";


Укажи USES Windows; и всё заработает.


А вот интересно, как создать надпись ПОД значками и не стираралась при обновлении стола? Я видел программку, которая таким образом выводила текущее время. Но вот исходников не видел.


 
глупый   (2003-01-07 22:30) [6]

2 Геннадий:
Говорит, что нужно указать тип для функции (GetDC),
и еще, что Handle:=GetDC(HWND_DeskTop); - слишком много актуаль параметров.


 
Геннадий ©   (2003-01-07 22:34) [7]

Напиши так - Handle:= GetDC(0); (насколько мне известно хэндл Рабочего стола это ноль)


 
глупый   (2003-01-07 22:40) [8]

А какой тип для функции?


 
mrProgrammer ©   (2003-01-07 22:56) [9]

2 Геннадий: А еще лучше GetDesktopWindow. Все-таки ноль - это недокументированная величина.


 
глупый   (2003-01-07 23:17) [10]

Мастера!
Ничего не получается:( Дайте просто ссылку, где об этом можно подробно почитать.
Спасибо.


 
Nik8. ©   (2003-01-08 00:15) [11]

Var DC:hDC;
s:string;
Can:TCanvas;
begin
DC:=GetDC(0);
Can:=TCanvas.Create;
s:="ХЕЙ !";
Can.Handle:=DC;
Can.Font.Size:=20;
Can.Brush.Color:=cllime;
Can.TextOut(10,10,s);
Can.Free;
ReleaseDC(0,DC);
end;


 
MAN-IN-RED ©   (2003-01-08 04:24) [12]

{Попробуй это, должно работать, писал быстро...
1. Создай новый проект.
2. Кидай на форму Timer.
3. Вытирай весь код у твоего юнита, и сувай этот.
4. Кликай по таймеру два раза, потом кликай два раза по форме (в пустом месте), и жми F9!!!}

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1 :TForm1;
DC :HDc;
Str :String;
TCan :TCanvas;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
var
Int :Integer;
begin
Randomize;
for Int:=0 to 999 do
begin
TCan.Font.Color := Random(99999999);
TCan.TextOut(Random(Screen.Width),Random(Screen.Height),Str);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Dc := GetDC(0);
TCan := TCanvas.Create;
Str := ".";
TCan.Handle := DC;
TCan.Font.Size := 72;
TCan.Brush.Style := bsClear;
Timer1.Interval := 55;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
TCan.Free;
ReleaseDC(0,Dc);
end;
end.


 
MAN-IN-RED ©   (2003-01-08 04:31) [13]

:))))))


 
глупый   (2003-01-08 07:58) [14]

2 Nik8.: получилось! Только фон под текстом хотелось бы прозрачный иметь.
2 MAN-IN-RED: Всё класно, но вот форма (в смысле в самом коде) мешается.


 
MARcoDEN ©   (2003-01-08 13:30) [15]

procedure DrawOnScreen;
var
ScreenDC: hDC;
beign

ScreenDC := GetDC(0); {получить контекст экрана}
Ellipse(ScreenDC, 0, 0, 200, 200); {нарисовать}
ReleaseDC(0,ScreenDC); {освободить контекст}

end;


 
dimich1978 ©   (2003-01-08 14:59) [16]

А как это все обновлять, например часики, у них сначала секунды закрашиваются, ну а потом ест минуты и часы


 
MAN-IN-RED ©   (2003-01-08 15:59) [17]


> глупый (08.01.03 07:58)


> 2 Nik8.: получилось! Только фон под текстом хотелось бы
> прозрачный иметь.

В моем примере фон под текстом прозрачный! Делаешь просто так:
TCan.Brush.Style := bsClear;
А вообще поэкспериментируй с кодом, разберись что и как и зачем!


 
Matolch.   (2003-01-08 16:55) [18]

Чего тут базар развели...

> Song © (07.01.03 21:27) (((( © ))))



 
MAN-IN-RED ©   (2003-01-08 17:56) [19]


> Matolch. (08.01.03 16:55)

Понимаешь в чем вся трабла, не все такие умные как ты…
Глупый © не понимает ни хрена в том примере, который написал Song, ему ж нужно указать шрифт, размер, цвет и т. д., сам он видимо не разберется, вот мы и помогаем… :)


 
глупый   (2003-01-09 14:17) [20]

Всем огромное СПАСИБО!!!
Добился таки чего хотел!
Смотрели фильм "Особенности нац. рыбалки"? Там чудик был, который первый раз на рыбалку поехал. Рыбу он еще поймал... Так вот, у меня сейчас такие же эмоции - радость и восторг!
А еще появилось огромное желание разбираться дальше... в предь буду стараться задавать "достойные" вопросы.

p.s. "достойные" - достойные того, чтобы задавать их на этом сайте.


 
Matolch.   (2003-01-09 18:27) [21]


> глупый (09.01.03 14:17)




Страницы: 1 вся ветка

Текущий архив: 2003.01.20;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.027 c
3-62424
valmont
2002-12-26 20:05
2003.01.20
DBGrid и его шапка


7-62886
Sergei_tlt
2002-11-06 11:52
2003.01.20
Перемещение мыши


6-62702
Alek_1
2002-11-19 01:18
2003.01.20
WebBrowser


1-62654
kronprince
2003-01-09 16:48
2003.01.20
Отладка Application server-а


4-62947
Asteroid
2002-12-05 23:56
2003.01.20
SetWindowRgn