Hallo
ich möchte herraus finden welche Farbe ein Pixel auf meinem Form hat.
Dies geht ja bekanntlich mit
Form1.Canvas.Pixels[x,y]
das probleme ist nun leider das wenn an der stelle z.b. ein Button liegt, er sagt das das ausserhalbe deine bereichs liegt (er gibt -1 zurück) was ja auch verständlich ist, weil das Pixel befindet sich ja auf der Canvas des buttons. Nun habe ich die Forum suche bemüht und diesen COde hier gefunden:
Delphi-Quellcode:
function getColor(x, y: LongInt): TColor;
var canvas: TCanvas;
begin
canvas:=TCanvas.Create;
try
canvas.Handle:=GetWindowDC(GetDesktopWindow);
Result:=canvas.pixels[X , Y
finally
canvas.Free;
end;
end;
Das Probleme ich bekomm die Pixelangaben in relation meines Formulars und nicht des gesamten Bildschirmes. also habe ich es dann so versucht
Delphi-Quellcode:
function TForm1.getColor(x, y: LongInt): TColor;
var canvas: TCanvas;
begin
canvas:=TCanvas.Create;
try
canvas.Handle:=GetWindowDC(GetDesktopWindow);
Result:=canvas.pixels[X + Form1.left , Y + Form1.Top];
finally
canvas.Free;
end;
end;
Aber meine "Test" lieferten eine Falsche Farbe, hat einer eine bessere Idee oder weiss was ich falsch mache?
Danke euch schonmal