delphi取鼠标指定位置颜色  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi取鼠标指定位置颜色


源代码:
----------------------------------------------------

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Panel1: TPanel;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Label5: TLabel;
    Edit5: TEdit;
    Label6: TLabel;
    Edit6: TEdit;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);

  p rivate
    { P rivate declarations }
  public
    constructor Create(AOwner: TComponent); override;
    procedure hotkeyProc(var msg:TMessage);message WM_HOTKEY;
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
{$APPTYPE CONSOLE}
var
  hotID:THandle;
  p1:TPoint;
  hHand1:THandle;
  hdc1:HDC;
  color1:Cardinal;
{ TForm1 }


constructor TForm1.Create(AOwner: TComponent);
begin
  inherited;
  //注册热键HOME
  RegisterHotKey(Self.Handle,hotID,0,VK_HOME);
  Timer1.Enabled:=true;
  p1:=Point(0,0);
end;

procedure TForm1.hotkeyProc(var msg: TMessage);
var
  r,g,b:Integer;
  c:TColor;

begin
  { TODO -o猪悟能 : 采集颜色 }
  c:=Color1;
  r:=GetRValue(ColorToRGB(c));
  g:=GetGValue(ColorToRGB(c));
  b:=GetBValue(ColorToRGB(c));
  Edit2.Text:=IntToStr(r);
  Edit3.Text:=IntToStr(g);
  Edit4.Text:=IntToStr(b);
  //Writeln(r);
  //Writeln(g);
  //Writeln(b);
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin

  if GetCursorPos(p1)then
  begin
    Edit5.Text:=IntToStr(p1.X);
    Edit6.Text:=IntToStr(p1.Y);
    hHand1:=WindowFromPoint(p1);
    hdc1:=GetDC(hHand1);
    Windows.ScreenToClient(hHand1,p1);
    color1:=GetPixel(hdc1,p1.X,p1.y);
    Panel1.Color:=color1;
    Edit1.Text:=IntToStr(color1);
  end;
end;

end.


推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.038996934890747 seconds