Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение цвета, Как определить цвет точки на экране? 
:(
    Опции темы
Vitaliy
  Дата 25.5.2002, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 22.5.2002

Репутация: нет
Всего: нет



Значит так. Есть одно место на экране, где мне надо отслеживать какой там сейчас цвет в определенной точке. Как это реализовать?
Сопутствующий вопрос: Как определить какое цветовое разрешение экрана в данный момент? :sarcasm
PM MAIL   Вверх
Mikel
Дата 25.5.2002, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: 1
Всего: 2



А тебе это нужно когда запущены простые приложения(без Direct3D, OpenGL итд), или это чит для CS?


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
Vitaliy
Дата 25.5.2002, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 22.5.2002

Репутация: нет
Всего: нет



Цитата(Mikel @ 25.5.2002, 13:23)
А тебе это нужно когда запущены простые приложения(без Direct3D, OpenGL итд), или это чит для CS?

Простое приложение без наваротов (но чужое).
PM MAIL   Вверх
Baa
Дата 25.5.2002, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: нет
Всего: 12



Получи DC десктопа, а дальше GetPixel...Поидее должно помочь...


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Baa
Дата 25.5.2002, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: нет
Всего: 12



Теоретически это должно работать...практически - нет...не знаю почему, но принцип примерно такой
var
 x, y,
 bpp  : Integer;
 Red,
 Green,
 Blue : Byte;
 DC   : HDC;
 Color: COLORREF;
begin
 DC  := GetDC(GetDesktopWindow);
 x   := GetDeviceCaps ( DC, HORZRES );
 y   := GetDeviceCaps ( DC, VERTRES );
 bpp := GetDeviceCaps ( DC, BITSPIXEL );
 Color := GetPixel(DC, 120,150);
 Red   := Color;
 Green := Color shr 8;
 Blue  := Color shr 16;
 ReleaseDC(GetDesktopWindow, DC);
end;


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
neutrino
Дата 26.5.2002, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



Да, но как ты знаешь координаты окна программы? С рабочего стола то можно так считать. А канвас окна ведь можно найти по имени формы, если я не ошибаюсь...


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
Mikel
Дата 26.5.2002, 17:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: 1
Всего: 2



Код
procedure TForm1.Button1Click(Sender: TObject);
var DC:HDC;
   Can:TCanvas;
   color:tcolor;
//    b:tbitmap;
begin
//если убрать {} и // то все будет в bitmap'е B
Can:=TCanvas.Create;
//b:=TBitmap.Create;
DC:=GetDC(0);
try
 Can.Handle:=DC;
{  with Screen do
      begin
       B.Width := Width;
       B.Height := Height;
       B.Canvas.CopyRect(Rect(0,0,Width,Height),Can,
                         Rect(0, 0, Width, Height));
      end
} finally
ReleaseDC(0, DC);
color:=can.Pixels[your_x,your_y];
{не забудь free}
form1.Color:=color;
Can.Free;
// b.free;
end;

end;

И все!

:D


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
neutrino
Дата 28.5.2002, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: нет
Всего: 62



А все окна нарисованны на канвасе с 0? Я помню делали мы какую-то прогу на OpenGl'е. И долго с этим мучались. Так вот 0 мы брали, когда хотели рисовать на рабочем столе.


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
Mikel
Дата 28.5.2002, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 882
Регистрация: 30.3.2002
Где: Саратов

Репутация: 1
Всего: 2



У меня все нормально идет, даже в играх пробовал-все нормально.


--------------------
...so remember, it's better to burn out than to fade away
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0763 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.