Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Malen mit Delphi und die Darstellung (https://www.delphipraxis.net/84052-malen-mit-delphi-und-die-darstellung.html)

Darkchild 10. Jan 2007 17:07


Malen mit Delphi und die Darstellung
 
Hallo zusammen,

mal ne Frage:

Ich erstele gerade ein Zeichenprogramm in Delphi und kann jetzt schon Schwarz/Weiß, Negativ, Spiegeln, Rechteck, Kreis, Linie, Vieleck zeichnen.

Soweit so gut, doch meine Frage jetzt:

Wie kann ich es umsetzten das wenn ich z.B. ein Rechteck zeichne, dies auch sehe wärend ich es auf die gewünschte grösse ziehe.
Wenn ich im moment ein Rechteck zeichne wird bei MouseDown der Startpunkt und bei MouseUp der Endpunkt gesetzt und zwischen diesen Punkten wird dann halt das Rechteck erstellt, nur sehe ich es nicht wärend ich es ziehe, das macht es etwas problematisch die grösse genau zu koordinieren.
Zum zeichnen benutze ich eine PaintBox und das verwendete Delphi ist die TurboDelphi Explorer version.

Gruss
Darkchild

inherited 10. Jan 2007 17:31

Re: Malen mit Delphi und die Darstellung
 
Du müsstest dir im MouseDown das aktuelle Bitmap der Paintbox zwischenspeichern und bei jedem MouseMove es wieder laden und das Rechteck drübermalen.

shmia 10. Jan 2007 17:35

Re: Malen mit Delphi und die Darstellung
 
Versuch mal Pen.Mode := pmXor.
Im Event OnMouseMove musst das vorige (dass du dir gemerkt hast) Rechteck zeichen damit es verschwindet
und das neue Rechteck zeichnen.
2-Mal ein Rechteck mit XOR gezeichnet ergibt wieder das Ausgangsbild

Dazu muss auch geprüft werden, ob die linke Maustaste gedrückt ist:
Delphi-Quellcode:
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  if ssLeft in Shift then { make sure button is down }
  begin ....
Schau dir dazu auch in der OH das Thema OnMouseMove, Example an.

Darkchild 10. Jan 2007 17:55

Re: Malen mit Delphi und die Darstellung
 
Ok, danke euch zweien erstmal, sollte mich weiterbringen.

Gruss
Darkchild


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz