如何取得屏目上某点的颜色?在线等qq66639527 如何取得屏目上某点的颜色?在线等qq66639527 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 下面这段能实现这个功能 ,关键是截获TWMEraseBkgnd消息type Tgetcol = class(TForm) Panel1: TPanel; Label1: TLabel; Label2: TLabel; procedure FormClick(Sender: TObject); procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure Panel1Click(Sender: TObject); procedure FormDblClick(Sender: TObject); procedure FormResize(Sender: TObject); private tx,ty : integer; procedure WMEraseBkng(var MSg:TWMEraseBkgnd);message WM_ERASEBKGND; public { Public declarations } end;var getcol: Tgetcol;implementation{$R *.DFM}const Digits : array[0..$F] of Char = '0123456789ABCDEF';function HexB(B : Byte) : string; {-Return hex string for byte}begin HexB[0] := #2; HexB[1] := Digits[B shr 4]; HexB[2] := Digits[B and $F];end;procedure Tgetcol.WMEraseBkng(var MSg:TWMEraseBkgnd);begin Msg.Result:=1;end;procedure Tgetcol.FormClick(Sender: TObject);var t : tcolor;r,g,b : byte;begint := canvas.pixels[tx,ty];r := getRvalue(t);g := getGvalue(t);B := getBvalue(t);LABEL2.COLOR := T;LABEL1.CAPTION := '$00' + HEXB(R) + HEXB(G) + HEXB(B);end;procedure Tgetcol.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);begintx := x;ty := y;end;procedure Tgetcol.Panel1Click(Sender: TObject);beginCLOSE;end;procedure Tgetcol.FormDblClick(Sender: TObject);beginclose;end;procedure Tgetcol.FormResize(Sender: TObject);beginpanel1.top := height - panel1.height -1;panel1.left := width - panel1.width -1;panel1.visible := true;end;end. 你要做什么?只是想知道吗?可以使用工具,比如RGBpro,很好用,体积有小。 procedure TForm1.Button1Click(Sender: TObject);var DC: HDC; Canvas: TCanvas;begin DC := GetDC(0); Canvas := TCanvas.Create; Canvas.Handle := DC; ShowMessage('The Color is :'+ IntToStr(Canvas.Pixels[100, 100])); Canvas.Free; ReleaseDC(0, DC);end; 你甚至可以随意画屏幕,如把ShowMessage('The Color is :'+ IntToStr(Canvas.Pixels[100, 100]));改为:Canvas.Rectangle(0,0,100,100); delphi执行查询语句时的进度条怎么做 请教:多用户状态下,主从表输入数据的问题. 这样的动态报表如何做? 请问一个问题。。。在线。。。急切 数据传输问题,请斑竹或高手指教!!! 高分,那位大哥有自动随机抽题的原码?(email:[email protected]) 如何动态配置ODBC,使之连接到本地数据文件? 菜鸟求职! 请问如何实现当鼠标移动标签上,标签上的文字自动变颜色 batchmove控件如何应用: SQL Server7中的日志文件将撑破硬盘!!! ***一个奇怪的小问题!!
type
Tgetcol = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
procedure FormClick(Sender: TObject);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Panel1Click(Sender: TObject);
procedure FormDblClick(Sender: TObject);
procedure FormResize(Sender: TObject);
private
tx,ty : integer;
procedure WMEraseBkng(var MSg:TWMEraseBkgnd);message WM_ERASEBKGND;
public
{ Public declarations }
end;var
getcol: Tgetcol;
implementation{$R *.DFM}
const
Digits : array[0..$F] of Char = '0123456789ABCDEF';function HexB(B : Byte) : string;
{-Return hex string for byte}
begin
HexB[0] := #2;
HexB[1] := Digits[B shr 4];
HexB[2] := Digits[B and $F];
end;procedure Tgetcol.WMEraseBkng(var MSg:TWMEraseBkgnd);
begin
Msg.Result:=1;
end;procedure Tgetcol.FormClick(Sender: TObject);
var t : tcolor;
r,g,b : byte;
begin
t := canvas.pixels[tx,ty];
r := getRvalue(t);
g := getGvalue(t);
B := getBvalue(t);
LABEL2.COLOR := T;
LABEL1.CAPTION := '$00' + HEXB(R) + HEXB(G) + HEXB(B);
end;procedure Tgetcol.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
tx := x;
ty := y;
end;procedure Tgetcol.Panel1Click(Sender: TObject);
begin
CLOSE;
end;procedure Tgetcol.FormDblClick(Sender: TObject);
begin
close;
end;procedure Tgetcol.FormResize(Sender: TObject);
begin
panel1.top := height - panel1.height -1;
panel1.left := width - panel1.width -1;
panel1.visible := true;
end;end.
var
DC: HDC;
Canvas: TCanvas;
begin
DC := GetDC(0);
Canvas := TCanvas.Create;
Canvas.Handle := DC;
ShowMessage('The Color is :'+ IntToStr(Canvas.Pixels[100, 100]));
Canvas.Free;
ReleaseDC(0, DC);
end;
ShowMessage('The Color is :'+ IntToStr(Canvas.Pixels[100, 100]));
改为:
Canvas.Rectangle(0,0,100,100);