Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.01.2011, 19:16   #1
Vaigard
Delphi and (not C)
Форумчанин
 
Аватар для Vaigard
 
Регистрация: 04.12.2010
Сообщений: 117
Вопрос Рисование на экране.

При рисовании на экране через getDC(0) с помощью команды rectangle выводится белый прямоугольник. Если я меняю brush.color, то цвет меняет форма, а не прямоугольник. А pen.color вообще считает за ошибку. Как это исправить и нарисовать на экране нормальный цветной прямоугольник? И как можно этот прямоугольник сделать прозрачным? Пробовал brush.style:=bsclear; результата нет.

Код:
var s:hdc;
begin
  s:=getdc(0);
  rectangle(s,10,10,1000,1000);
  releasedc(0,s);
end;

________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.
<--Жми на весы

Последний раз редактировалось Serge_Bliznykov; 04.01.2011 в 20:24.
Vaigard вне форума Ответить с цитированием
Старый 04.01.2011, 19:36   #2
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

pen и brush это свойства Canvas.
Рисовать на рабочем столе немного сложнее чем на Канвасе.. погугли "как рисовать на рабочем столе"
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 04.01.2011, 21:11   #3
Vaigard
Delphi and (not C)
Форумчанин
 
Аватар для Vaigard
 
Регистрация: 04.12.2010
Сообщений: 117
По умолчанию

Погуглил Конечно, лучше услышать от человека, потому что результат не особо впечатлил

2Модератор Учту
<--Жми на весы
Vaigard вне форума Ответить с цитированием
Старый 04.01.2011, 23:58   #4
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Из первой тройки результатов гугла:

http://www.gcmsite.ru/?pg=art&id=del...-screen-winapi
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 05.01.2011, 12:42   #5
Vaigard
Delphi and (not C)
Форумчанин
 
Аватар для Vaigard
 
Регистрация: 04.12.2010
Сообщений: 117
По умолчанию

Я это уже читал
<--Жми на весы
Vaigard вне форума Ответить с цитированием
Старый 05.01.2011, 12:55   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

создайте проще TCanvas, присвойте ему контекст нулевого окна, и рисуйте.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.01.2011, 22:06   #7
Vaigard
Delphi and (not C)
Форумчанин
 
Аватар для Vaigard
 
Регистрация: 04.12.2010
Сообщений: 117
По умолчанию

Все, разобрался Спасибо
<--Жми на весы

Последний раз редактировалось Vaigard; 05.01.2011 в 22:18.
Vaigard вне форума Ответить с цитированием
Старый 05.01.2011, 22:15   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
s.DC:=GetDC(0);
до любого рисования.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.01.2011, 23:06   #9
Vaigard
Delphi and (not C)
Форумчанин
 
Аватар для Vaigard
 
Регистрация: 04.12.2010
Сообщений: 117
По умолчанию

Я взял s.handle:=getdc(0). Работает нормально. А как задавать такой переменной указатель на другое окно?
<--Жми на весы
Vaigard вне форума Ответить с цитированием
Старый 05.01.2011, 23:29   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

GetDC принимает хендл этого окна.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисование и перемещение точки на экране Aleks2215 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 09.12.2010 20:51
LineTo рисование на экране - lineto(0,1000,1000) - LineTo(DC, 1000, 1000); Crivel Общие вопросы Delphi 8 23.05.2009 22:30
Построение на экране Ximer Паскаль, Turbo Pascal, PascalABC.NET 1 10.04.2009 21:37
Форма на экране Михаил Юрьевич Общие вопросы Delphi 1 04.04.2009 23:27
Рисование на экране... Roberto Win Api 3 07.04.2008 07:35