Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Delphi-ziskani barvy pixelu

S tím resultem potřebuji pomoci. Prosím o názornou ukázku. (Zkrácená verze)

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Tlhelp32, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, SHDocVw, shellapi, ExtCtrls;

type
  TForm1 = class(TForm)

    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//Konverze barvy do HEX kodu
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;

//Ziskani pixelu pro urceni barvy
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;

//timer
procedure TForm1.Timer1Timer(Sender: TObject);
var
  n:integer;
begin
if (ColorToHTMLHex(DesktopColor(	613	,	442	)))='FF0000' then n:=	1	;
if (ColorToHTMLHex(DesktopColor(	613	,	441	)))='FF0000' then n:=	2	;
if (ColorToHTMLHex(DesktopColor(	612	,	440	)))='FF0000' then n:=	3	;
if (ColorToHTMLHex(DesktopColor(	612	,	439	)))='FF0000' then n:=	4	;
if (ColorToHTMLHex(DesktopColor(	611	,	438	)))='FF0000' then n:=	5	;
if (ColorToHTMLHex(DesktopColor(	611	,	437	)))='FF0000' then n:=	6	;
if (ColorToHTMLHex(DesktopColor(	611	,	436	)))='FF0000' then n:=	7	;
if (ColorToHTMLHex(DesktopColor(	611	,	435	)))='FF0000' then n:=	8	;
if (ColorToHTMLHex(DesktopColor(	611	,	434	)))='FF0000' then n:=	9	;
if (ColorToHTMLHex(DesktopColor(	611	,	433	)))='FF0000' then n:=	10	;
if (ColorToHTMLHex(DesktopColor(	611	,	432	)))='FF0000' then n:=	11	;
if (ColorToHTMLHex(DesktopColor(	611	,	431	)))='FF0000' then n:=	12	;
if (ColorToHTMLHex(DesktopColor(	612	,	430	)))='FF0000' then n:=	13	;
if (ColorToHTMLHex(DesktopColor(	612	,	429	)))='FF0000' then n:=	14	;
if (ColorToHTMLHex(DesktopColor(	613	,	428	)))='FF0000' then n:=	15	;
if (ColorToHTMLHex(DesktopColor(	613	,	427	)))='FF0000' then n:=	16	;
if (ColorToHTMLHex(DesktopColor(	614	,	426	)))='FF0000' then n:=	17	;
if (ColorToHTMLHex(DesktopColor(	615	,	425	)))='FF0000' then n:=	18	;
if (ColorToHTMLHex(DesktopColor(	616	,	424	)))='FF0000' then n:=	19	;
if (ColorToHTMLHex(DesktopColor(	617	,	423	)))='FF0000' then n:=	20	;
end;

end.

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny