Ausgangspunkt festhalten

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Verbesserte Liniendarstellung

Beim Zeichnen von Linien muss der Ausgangspunkt der Linie im Feld Origin gespeichert werden. Dem Feld Origin wird der Punkt zugewiesen, an dem das Ereignis OnMouseDown auftritt. Die Behandlungsroutine für das Ereignis OnMouseUp kann dann aus dem Inhalt von Origin den Ausgangspunkt ermitteln:



 procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
 begin
 Drawing := True;
 Canvas.MoveTo(X, Y);
 Origin := Point(X, Y); { Ausgangspunkt der Linie speichern }
 end;
 procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
 begin
 Canvas.MoveTo(Origin.X, Origin.Y); { Stiftposition auf Ausgangspunkt setzen }
 Canvas.LineTo(X, Y);
 Drawing := False;
 end;



 void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
   TShiftState Shift, int X, int Y)
 {
   Drawing = true;            // Das Zeichnen-Flag setzen
   Canvas->MoveTo(X, Y);      // Stiftposition festlegen
   Origin = Point(X, Y);      // Ausgangspunkt der Linie speichern
 }
 void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button,
   TShiftState Shift, int X, int Y)
 {
   Canvas->MoveTo(Origin.x, Origin.y);  // Stiftposition auf Ausgangspunkt setzen
   Canvas->LineTo(X, Y);      // Linie zeichnen von Stiftposition zu (X, Y)
   Drawing = false;           // Das Zeichnen-Flag zurücksetzen
 }



Nach diesen Änderungen zeichnet die Anwendung die abschließende Linie noch einmal. Der "Gummiband-Effekt", d.h. das Zeichnen einer Hilfslinie zur Anzeige der Mausbewegung, wird aber noch nicht unterstützt.

Siehe auch