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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.07.2011, 19:46   #1
AlexDn
Пользователь
 
Регистрация: 02.10.2009
Сообщений: 93
По умолчанию Функция для цвета пикселя

Есть ли функция возвращающая цвет пикселя с рабочего стола если известны его координаты?..
AlexDn вне форума Ответить с цитированием
Старый 20.07.2011, 20:00   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

именно с рабочего стола?(если область скрыта, то может не выйти)
или же с экрана всего?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.07.2011, 20:01   #3
AlexDn
Пользователь
 
Регистрация: 02.10.2009
Сообщений: 93
По умолчанию

Ну с экрана вообщем..
AlexDn вне форума Ответить с цитированием
Старый 20.07.2011, 20:13   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
var C:TCanvas;
begin
 C:=TCanvas.Create;
 C.Handle:=GetDC(0);
 //работаем с канвой, в том числе и пиксели берем
 С.Free;
end;
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.07.2011, 20:18   #5
AlexDn
Пользователь
 
Регистрация: 02.10.2009
Сообщений: 93
По умолчанию

Пепел Феникса, спасибо, только чем брать пиксели?..
AlexDn вне форума Ответить с цитированием
Старый 20.07.2011, 20:24   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Зачем канва тут?
Винды в помощь...


в общем-то это довольно просто:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  p:TPoint; //координата курсора
  hP:Cardinal;  //Цвет пикселя в cardinal
begin
  GetCursorPos(p); //получаем координаты курсора 
  hP:=GetPixel(GetDC(0),p.X,p.Y); //Получаем данные о пикселе
  Label1.Caption:=ColorToString(hP); // ... 
end;
Не знаю как у вас, но у меня определяет пиксили и за краями формы.. т.е. по всему экрану.
Главное таймеру 50 мс пихнуть.

Последний раз редактировалось Человек_Борща; 20.07.2011 в 20:28.
Человек_Борща вне форума Ответить с цитированием
Старый 20.07.2011, 20:31   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

нулевой контекст берет с экрана, не важно что там.
исключение поверхности DX.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.07.2011, 20:33   #8
AlexDn
Пользователь
 
Регистрация: 02.10.2009
Сообщений: 93
По умолчанию

всем спасибо! разобрался!..
AlexDn вне форума Ответить с цитированием
Старый 20.07.2011, 20:37   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
нулевой контекст берет с экрана, не важно что там.
исключение поверхности DX.
Ну для этого случая есть, wglGetCurrentDC
Человек_Борща вне форума Ответить с цитированием
Старый 20.07.2011, 20:39   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Ну для этого случая есть, wglGetCurrentDC
это для ГЛ, и вы описание то читали её?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение цвета пикселя на экране Florent Общие вопросы C/C++ 5 05.08.2011 00:48
Определение цвета пикселя Syn-McJ C++ Builder 2 29.05.2010 15:27
Изменение цвета пикселя sysl Общие вопросы Delphi 2 07.03.2010 20:36
Установка цвета пикселя Артэс Win Api 14 25.07.2009 11:38
Определение цвета пикселя Artem Общие вопросы Delphi 8 13.07.2007 14:33