Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];

Вниз

Рисование на экране   Найти похожие ветки 

 
Antonmm   (2004-09-08 21:18) [0]

Как нарисовать на desktope какую-нибудь фигуру?(Например : круг)


 
olookin ©   (2004-09-08 21:20) [1]

Получить хэндл десктопа  рисовать?

GetDC и Draw?


 
wl   (2004-09-08 21:57) [2]

affaik, hwnd десктопа равно нулю, может я и не прав конечно...


 
oookin   (2004-09-08 22:22) [3]

[2] wl   (08.09.04 21:57)

Я и сам не знаю... Но казалось бы хэндл десктопа не должен был бы быть равен нулю..


 
wl   (2004-09-08 22:39) [4]


var
 dc: HDC;
begin
 dc := GetDC(0);
 if(dc)then
    LineTo(dc,800,600);
end;

Попробуй тогда выполнить этот код, исправив возможные ошибки( я писал на C++, потом переводил в делфи, может где и ошибся). прекрасно рисует на десктопе


 
wl   (2004-09-08 22:41) [5]

хых, а также поверх всех окон...
ерунда какая-то


 
Mihey_temporary ©   (2004-09-08 23:45) [6]


> wl   (08.09.04 22:39) [4]


Надо добавить ReleaseDC(0, DC)


 
Gero ©   (2004-09-09 00:11) [7]

GetDesktopWindow


 
Александр1   (2004-09-09 07:35) [8]

procedure TForm1.Button1Click(Sender: TObject);
var dtC:TCanvas;
begin
dtC:=TCanvas.Create;
//Устанавливаем связь с рабочим столом
dtC.Handle:=GetDC(Hwnd_Desktop);
dtC.Font.Size:=20;
dtC.TextOut(200,400,"Привет!");
//Разрыв связи  между dtC и рабочим столом
ReleaseDC(dtC.Handle, Hwnd_Desktop);
dtC.Free;
end;
Рисовать аналогично. Пеши dtC.LineTo(800,600); и т.д.

Так например можно вывести на рабочий стол рисунок.
procedure TForm1.Timer1Timer(Sender: TObject);
var dtC:TCanvas;
Ris:TBitmap;
begin Randomize;
//x:=x+1;
Ris:=TBitmap.Create;
dtC:=TCanvas.Create;
dtC.Handle:=GetDC(Hwnd_Desktop);
dtC.Font.Size:=20;
dtC.TextOut(200,400,"wsdwdwewewe");
Ris.LoadFromFile("1.bmp");
dtC.Draw(Random(600),Random(600),Ris);
Ris.Free;
ReleaseDC(dtC.Handle, Hwnd_Desktop);
dtC.Free;

end;


 
kaZaNoVa   (2004-09-09 08:57) [9]

а зачем ReleaseDC(0, DC)  ?
у меня и без него прекрасно работает!


 
KSergey ©   (2004-09-09 08:59) [10]

> [9] kaZaNoVa   (09.09.04 08:57)
> а зачем ReleaseDC(0, DC)  ?
> у меня и без него прекрасно работает!

Без Free тоже прекрасно работает ;)
На кой его эти умники пишут?


 
TUser ©   (2004-09-09 11:01) [11]

> а зачем ReleaseDC(0, DC)  ?
у меня и без него прекрасно работает!

Не надо зря юзать ресурс. Не нужен - освободи.


 
KSergey ©   (2004-09-09 11:09) [12]

>  [11] TUser ©   (09.09.04 11:01)
> > а зачем ReleaseDC(0, DC)  ?
> у меня и без него прекрасно работает!
>
> Не надо зря юзать ресурс. Не нужен - освободи.

А для меня это до сих пор больной вопрос: надо или нет.
Вот в дельфийской справке по TCanvas.Handle его нет. Единственный источник, котоорому вроде можно доверять. Более ничего авторитетного, указывающего на его необходимость/не обязательность использования не нашел.

PS
Разумеется, это все в разрезе такого шаблона:

c := TCanvas.Create;
c.Handle := GetDC(...);
...
c.Free;


Если же речь о GetDC(...) и далее WinAPI - тогда понятно вопроса о том вызывать/не вызывать ReleaseDC не возникает.


 
KSergey ©   (2004-09-09 11:10) [13]

> [12] KSergey ©   (09.09.04 11:09)
> Вот в дельфийской справке по TCanvas.Handle его нет.

Имелось в виду - в приведенном там примере.



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

Форум: "Основная";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.038 c
14-1094318828
zokzok
2004-09-04 21:27
2004.09.26
Access vs Delphi


14-1094796318
ocean
2004-09-10 10:05
2004.09.26
почему смтп всегда один, а поп - целых 3?


14-1094546302
nick-from
2004-09-07 12:38
2004.09.26
Какие есть приличные стрелялки-убивалки сейчас?


4-1092910057
JJJ
2004-08-19 14:07
2004.09.26
WinAPI: Изменение шрифта и стиля Edita


3-1093591496
Sirruf
2004-08-27 11:24
2004.09.26
Грабли с датами в ADO





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский