Ok, es geht auch direkt mit dem Canvas des Formulars über Pixel. Nur schnell ist das dann nicht.
Delphi-Quellcode:
function FindColorInForm(AForm : TForm; AColor : TColor; var APoint : TPoint) : boolean;
var
r, c : integer;
begin
result := False;
r := 0;
while (r < AForm.ClientHeight) and not result do
begin
c := 0;
while (c < AForm.ClientWidth) and not result do
begin
if AForm.Canvas.Pixels[c, r] = AColor then
begin
APoint.X := c;
APoint.Y := r;
result := True;
end;
inc(c);
end;
inc(r);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
pt : TPoint;
begin
// Zum Test z.B. ein rotes TLabel irgendwo aufs Formular setzen
if FindColorInForm(self, clRed, pt);
Showmessage(Format('%d/%d', [pt.X, pt.Y]))
end;