Q&A

  • 도와주세요.. 현위치의 Color를 알아내는 방법
Delphi 에서 만들려고 합니다.(초보 Delphi.. ^.^ )



버튼을 누르면 3초후 마우스의 좌표와 해당 좌표의 색을 알고 싶습니다.

좌표표시는 정상적으로 되는데 색표시가 않되는군요.



아마도 절대 좌표를 계산하지 않고 폼 내부의 좌표로 계산하는거 같아요.

다시 말해서 좌표계산은 화면(모니터) 전체를 기준으로 계산하는데,

색의 좌표는 그렇지 않네요. 색의 좌표도 화면(모니터) 전체를 기준으로 계산해서

색의 값을 표시했으면 합니다.



즉 폼 밖의 위치에 있는 색의 값을 어떻게 가져오나요...



멜좀 주세요~~~~

--------------------------------------------------------------------------

unit main;



interface



uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, ExtCtrls;



type

TForm1 = class(TForm)

Button1: TButton;

Shape1: TShape;

Panel1: TPanel;

labelx: TLabel;

labely: TLabel;

Button5: TButton;

Panel2: TPanel;

ecolor: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;



var

Form1: TForm1;



implementation



{$R *.DFM}



procedure TForm1.Button1Click(Sender: TObject);

begin

Close;

end;



procedure TForm1.Button5Click(Sender: TObject);

var

Mpos : TPoint;

begin

// 마우스의 위치를 3초후에 감지

sleep(3000);

GetCursorPos(Mpos);

// 현 위치의 색을 표시

ecolor.caption := ColorToString(Canvas.pixels[Mpos.x,Mpos.y]);

// 현 좌표를 표시

labelx.caption := IntToStr(Mpos.x);

labely.caption := IntToStr(Mpos.y);

end;



end.

0  COMMENTS