很简单,放一个 Label,让它的Caption一直是屏幕上 100,100 坐标处(屏幕左上角为 0,0)的颜色值,找了很多资料了,但是说的在自己的窗口上取颜色,我想是记录那一个点的颜色,不管当前的窗口在哪里,是不是活动窗口

解决方案 »

  1.   

    //我已经测试过了 D6+windows xpprocedure TForm1.Timer1Timer(Sender: TObject);
    var
      P:TPoint;
      MyhDC : HDC;
      c:TColor;
    begin
      MyhDC := GetDC(0);
      GetCursorPos(P);
      c:=GetPixel(MyhDC, P.x, P.y);
      Label1.Caption := '红'+IntToStr(GetRValue(c))+
                        ',绿'+IntToStr(GetGValue(c))+
                        ',兰'+IntToStr(GetBValue(c));
    end;
      

  2.   

    楼上的,你的是取鼠标上的色哦,我要的不是鼠标上的颜色,是屏幕上某一固定点的颜色,当屏幕上该点的颜色有变化时该点颜色值显示在我的Label1.Caption上面,跟鼠标没关系,也跟当前哪个是活动窗口没关系
      

  3.   

    var
      Color:TColor;
    begin
      Color:=GetPixel(GetDC(0), 100, 100);//取屏幕上(100,100)的颜色
      Label1.Color:=Color;
    end;
      

  4.   

    var
      Color:TColor;
    begin
      Color:=GetPixel(GetDC(0), 100, 100);//取屏幕上(100,100)的颜色
      Label1.Color:=Color;
    end;---------------------------------------
     改变的是窗体的颜色.不是Label1的..呵呵
      

  5.   

    晕,你想改哪里就哪里。改窗体颜色就Form.Color呗~
      

  6.   

    我是说
     Label1.Color:=Color; 后改变的是窗体的颜色 
     Label1.Color:=clred;才 是Label1的颜色。不明白了,
     不知道是不是我的问题 :)
      

  7.   

    回头再看下 GetDC 是什么东西,嘿嘿, 结帐