Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ Взятие цвета с экрана

Автор: Bokul 18.03.2007 6:30

Надо бы програмка, которая возвращает цвет заданного пикселя экрана, желательно в RGB и кодом.

Автор: volvo 18.03.2007 6:41

Тебе что, готовая нужна? Сам написать не хочешь? rolleyes.gif

Всего делов:

function DesktopColor(const X, Y: Integer): TColor;
var
c: TCanvas;
begin
c := TCanvas.Create;
try
c.Handle := GetWindowDC(GetDesktopWindow);
Result := GetPixel(c.Handle, X, Y);
finally
c.Free;
end;
end;

...
GetCursorPos(Pos);
myColor := DesktopColor(Pos.X, Pos.Y);
...

Автор: Bokul 18.03.2007 6:54

Цитата
Сам написать не хочешь?

Сам напросился... smile.gif

Это Delphi?

Автор: volvo 18.03.2007 6:58

Дельфи, кто ж еще?

Перенести тему?

Автор: Bokul 18.03.2007 7:02

Цитата
Перенести тему?

Еееее, давай.

Цитата
Дельфи, кто ж еще?

А вдруг в Fpc появился TCanvas... Можешь файл проекта присоединить?

Автор: volvo 18.03.2007 14:34

Цитата
Можешь файл проекта присоединить?
Вот:


Прикрепленные файлы
Прикрепленный файл  color_pick.rar ( 2.39 килобайт ) Кол-во скачиваний: 204

Автор: Bokul 18.03.2007 22:29

Спасибо!
Есть два вопросы:
1 Где можно посмотреть что делает, например, функция GetRValue? По контексту и так ясно, но во встроенной справке я не нашел. Другими словами как ее (систему помощи) использовать?
2 Как перевести TColor в #FFFFFF формат?

Автор: Caranthir 18.03.2007 23:24

сдесь DRKB -реальная вещь wink.gif

Автор: TarasBer 18.03.2007 23:30

Цитата(Bokul @ 18.03.2007 18:29) *

2 Как перевести TColor в #FFFFFF формат?

Ну, по-моему, TColor в integer переводится ретипизацией...
А выписать integer в шестнадцатиричной системе счисления трудностей нету.

Автор: klem4 19.03.2007 1:04

Цитата
Как перевести TColor в #FFFFFF формат?


Либо руками, либо

Недавно сам это искал, хотя может это не совсем то что тебе нужно, ибо в некоторых случаях возвращает значения не в виде строки в формате hex
Цитата(дркб)
В модуле graphics имеются две недокументированные функции:



function ColorToString(Color: TColor): string;



Если значение TColor является именованным цветом, функция возвращает имя цвета ("clRed"). В противном случае возвращается шестнадцатиричное значение цвета в виде строки.



function StringToColor(S: string): TColor;



Данная функция преобразует "clRed" или "$0000FF" во внутреннее значение цвета.