Einzelnen Beitrag anzeigen

Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Pen.Style-Varianten nur bedingt erkennbar

  Alt 7. Jan 2011, 16:07
Ich vermute mal, dass du beim freien Zeichnen immer die vorherige Position des Cursors mit der jetzigen per Canvas.LineTo() verbindest. Wenn du den Cursor dabei langsam bewegst, entstehen halt sehr viele einzelne kurze Linien, die eventuell nicht länger als ein paar Pixel sind. Es ist einleuchtend, dass die Punktung der Linie dabei nicht sichtbar wird, denn wie will man eine 1Pixel lange Linie punkten?
Als Lösung fällt mir spontan eine Sache ein: Merke dir die Punkte in einem Array of TPoint. Dann zeichnest du sie per Canvas.Polyline:
Delphi-Quellcode:
var
  Pt: Array of TPoint;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if ssLeft in Shift then
  begin
    SetLength(Pt, Length(Pt) + 1);
    Pt[High(Pt)].X := X;
    Pt[High(Pt)].Y := Y;
    Canvas.Polyline(Pt);
  end;
end;
Dann wird die Linie gepunktet.
Viele Grüße
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat