Thema: Delphi Pixel auf Form ermitteln

Einzelnen Beitrag anzeigen

Thorben_K

Registriert seit: 22. Okt 2006
Ort: Darmstadt
105 Beiträge
 
Delphi 2006 Professional
 
#1

Pixel auf Form ermitteln

  Alt 5. Feb 2007, 17:35
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
Thorben
  Mit Zitat antworten Zitat