Einzelnen Beitrag anzeigen

hansklok

Registriert seit: 14. Apr 2004
Ort: Karlsruhe
318 Beiträge
 
Delphi 2010 Architect
 
#1

Grafikprogrammierung: Raster-Frage

  Alt 25. Okt 2006, 13:18
Halle, ich zeichne ein Raster mit folgendem Code auf ein Formular:

Delphi-Quellcode:
begin
   X:= 25;
      repeat
        Y:= 25;
          repeat
            with Form1.Canvas do begin
              Pen.Color:= clBlack;
              Pen.Style:= psSolid;
              MoveTo(X, Y);
              LineTo(X+1, Y);
            end;
          Y:= Y + Raster.Y;
          until Y > Form1.Width;
        X:= X + Raster.X;
      until X > Form1.Width;
end;
So, nun kann man ja nun über die OnMouseDown bzw. OnMouseUp - Prozeduren z.B. ein Rechteck zeichen:

Delphi-Quellcode:
var
  Form1: TForm1;
  x1,y1: Integer;

...

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
x1:= x;
y1:= y;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
canvas.Rectangle(x1,y1,x,y);
end;
So, nun möchte ich, dass wenn der Startpunkt (x1,y1) in der Nähe eines Rasterpunktes, eventuell mit einer Toleranz von +-3 Pixel von dem jeweiligen Rasterpunkt automatisch an den jeweiligen Rasterpunkt gezeichnet wird. Sozusagen magnetisch an einen Rasterpunkt angezogen und sich dort die Startkoordinaten des Rechteckes befinden. Leider habe ich nicht so recht eine Idee, wie ich das realisieren könnte. Kann mir bitte jemand weiterhelfen!

Danke

MfG

hansklok
  Mit Zitat antworten Zitat