![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Определение цвета в любой части экрана мышкой [D3, D5, Win95/98]
Эндрю2 © (2002-01-30 21:43:00)Кто знает, как в DELPHI при наведении мыши на любую часть экрана
в моей программе бы высвечивался код или надпись данного цвета, надо помочь одному знакомому, у которого цветоаномал.
Chris (2002-02-01 10:05:00) [1]> IZEN
Действительно - классная штучка.
(Для поиска. www.filesearch.ru Строка запроса = Pixie)
iZEN (2002-02-01 01:45:00) [2]Есть такая утилитка(махонькая): Pixie.exe
~Sergius (2002-01-31 23:43:00) [3]2 Walker_sw
>> зачем создавать canvas???
Просто привычка, расписывая ответ на вопрос о делфи свести к минимуму использование API. GetPixel из АПИ несомненно лучше, но если человеку дать канву для рабочей области экрана, то, может быть, оно и к лучшему (может, цветоаномал захочется исправить из делфи ;-). Канва она и есть канва - удобно.
pasha_golub (2002-01-31 12:03:00) [4]На www.torry.ru есть пакет компонент от ABF systems, а в нем есть пипетка. Я пробовал - отличная штука!
Walker_sw (2002-01-31 06:09:00) [5]зачем создавать canvas???
я делал это так:
var
Color: TColor;
//..........
procedure TfrmMain.Timer(Sender: TObject);
var
pt: TPoint;
dc: hDC;
begin
dc := GetDC (0);
GetCursorPos (pt);
Color := GetPixel(dc, pt.x, pt.y);
// Label1.Caption:=IntToHEX(color, 6);// только надо учитывать, что цвет программа берёт в формате bb gg rr, а в html"е используется наоборот, то есть rr gg bb
ReleaseDC (0, dc);
end;
~Sergius (2002-01-31 04:59:00) [6]Прошу прощения, после
dc := GetWindowDC (0);нужно поставить:
Cnv.Handle := dc;
~Sergius (2002-01-31 04:26:00) [7]
var col: TColor;
Cnv: TCanvas;
dc: hDC;
pt: TPoint;
begin
try
Cnv := TCanvas.Create;
dc := GetWindowDC (0);
GetCursorPos (pt);
With pt do
Col := Cnv.Pixels[x,y];
finally
ReleaseDC (0,dc);
Cnv.Free;
end;
end;
По такому принципу, короче.
Все это дело повесь, например, на таймер.
SoftOne (2002-01-31 02:28:00) [8]> Фе
А ты проверил "при наведении мыши на любую часть экрана"?
Фэ (2002-01-30 22:41:00) [9]procedure TSForm.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var col: TColor;
begin
col := Canvas.Pixels[X, Y]
end;