![]() |
Farbe an der Mausposition ?!
Ich möchte ein kleines Tool coden das die farbe (in HEX) des bildschirms an der aktuellen Mausposition in einem Edit feld ausgibt.
Das problem ist nur das ich nicht weis wie ich die farbe an der Mausposition bekomme ?! mfg inzzi |
Tach inzzi,
so müsste es funktionieren:
Code:
gruß, arnoldo
var farbe:dword;
mpos:tpoint; dc:hdc; begin getcursorpos(mpos); dc:=GetDC(0); farbe:=GetPixel(dc,mpos.x,mpos.y); ReleaseDC(0,dc); end; |
ok thx..
i werd das dann versuchen, und wie kann ich die farbe ausserhalb der form einlesen... wenn ich jetzt zb. auf meinen desktop hintergrund klicke, oder irgendeine farbe aus einer page im IE haben will... bei einem klick soll die farbe eingelesen werden, aber dabei wird ja das programm deaktiviert und der IE zb. aktiviert... |
|
ok thx werd ich mir mal anschaun...
allerdings bin ich nicht sehr optimistisch das ich da einen durchblick hab -> delhpi anfänger ;P |
Irgendwo ist da noch einfehler drin. Es funktioniert nicht sehr zuverlässig und genau ist es auch nicht:
Delphi-Quellcode:
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); var pt: TPoint; dwRed, dwGreen, dwBlue : DWORD; dc : HDC; begin dc := GetDC(0); pt.X := x+Form1.Left; pt.Y := y+Form1.Top; ClientToScreen(pt); dwRed := GetRValue(GetPixel(dc, pt.X, pt.Y)); dwGreen := GetGValue(GetPixel(dc, pt.X, pt.Y)); dwBlue := GetBValue(GetPixel(dc, pt.X, pt.Y)); Caption := IntToStr(dwRed)+' '+IntToStr(dwGreen)+' '+IntToStr(dwBlue); ReleaseDC(Form1.Handle, dc); ReleaseCapture(); end; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin SetCapture(Form1.Handle); end; procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var pt : TPoint; begin pt.X := x+Form1.Left; pt.Y := y+Form1.Top; ClientToScreen(pt); Caption := IntToStr(pt.X)+' / '+IntToStr(pt.Y); end; |
Re: Farbe an der Mausposition ?!
Code:
function CursorColor : TColor;
var cv : TCanvas; p : TPoint; begin GetCursorPos(p); cv:=TCanvas.Create; cv.Handle:=GetWindowDC(GetDesktopWindow); Result:=GetPixel(cv.Handle,p.x,p.y); cv.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz