Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#2

AW: Zeichenprogramm

  Alt 22. Feb 2012, 21:20
Die erste Frage die sich stellt ist: warum setzt du alles in FormMouseMove Prozedur? Warum nicht in die Button1Click Prozedur? Die Frage ist berechtigt, denn um X/Y auzulesen nimmst du Mouse.CursorPos und um zu prüfen ob Maustaste geklickt ist nimmst du GetKeyState. Warum? Was glaubst du wozu die Angaben in FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer) gut sind? Da hast Shift und X und Y. mit if ssLeft in Shift then findest du heraus ob Maustaste geklickt ist, X und Y sind selbsterklärend.

Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  if ssLeft in Shift then
  begin
    //Canvas.Pen.Color := Farbe;
    Canvas.MoveTo(xAlt, yAlt);
    Canvas.LineTo(X, Y);
  end;

  xAlt := X;
  yAlt := Y;
end;
Edit:

Und was das leere Formular angeht, Canvas ist nur eine Leinwand. Alles was sich drüber legt wischt das Ergebnis weg. Dann entweder alles zusätzlich in einer Bitmap speichern und auf OnPaint des Formulars reagieren oder gleich Image Komponente nehmen.

Übrigens, die zu Delphi mitgelieferten Beispiele (im Installationsverzeichnis) enthalten ein Mallprogramm. Da mal reingucken.

Geändert von Popov (22. Feb 2012 um 21:25 Uhr)
  Mit Zitat antworten Zitat