Předmět Autor Datum
var DC: HDC; DC := CreateDC('DISPLAY',nil,nil,nil); BarvaBodu := Getpixel(DC,x,y);
JM 28.08.2006 21:01
JM
Musis zjistit adresu canvasu obrazovky var DeskTopDC: HDC; DeskTopCanvas: TCanvas; begin DeskTopDC…
Jan Fiala 28.08.2006 21:03
Jan Fiala
Chtít si udělat kapátko a nevědět, jak se zjistí barva pixelu je, ehm, poněkud, ehm, jak to jen říct…
host 28.08.2006 21:06
host
treba ma nejakej specifickej pozadavek a kdyz se k tomu i neco priuci... proc ne?
angel333 28.08.2006 21:24
angel333
function DesktopColor(const x,y: integer): TColor; var c:TCanvas; begin c:=TCanvas.create; c.handle:… poslední
pme 28.08.2006 22:26
pme

Musis zjistit adresu canvasu obrazovky

var
  DeskTopDC: HDC;
  DeskTopCanvas: TCanvas;
begin
  DeskTopDC := GetWindowDC(GetDesktopWindow);
  DeskTopCanvas := TCanvas.Create;
  DeskTopCanvas.Handle := DeskTopDC;
  { zde si z canvasu sejmes barvu z nejakeho bodu 
    Ja jsem to resil napr. minmalizaci vlastni aplikace, kopii obrazvky do Image, 
    ktery jsem zobrazil pres celou obrazovku a sejmutim bodu  }
  ReleaseDC(GetDesktopWindow, DeskTopDC);
  DeskTopCanvas.Free;
end;
function DesktopColor(const x,y: integer): TColor;
var
  c:TCanvas;
begin
  c:=TCanvas.create;
  c.handle:=GetWindowDC(GetDesktopWindow);
  result:=getpixel(c.handle,x,y);
  c.free;
end;

function ColorToHTMLHex(Color: TColor): String;
begin
  Result := IntToHex(ColorToRGB(Color), 6);
  Result := Copy(Result, 5, 2) + Copy(Result, 3, 2) + Copy(Result, 1, 2);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  pos: TPoint;
begin
  GetCursorPos(Pos);
  Panel1.Color:=DesktopColor(pos.x, pos.y);
  Panel1.Caption:='$'+ColorToHTMLHex(Panel1.Color);
end;

Zpět do poradny Odpovědět na původní otázku Nahoru