Einzelnen Beitrag anzeigen

Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Harte Nuss: Cursor zu einer bestimmten Farbe springen

  Alt 25. Feb 2008, 16:14
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;
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat