![]() |
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 |
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.
|
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:
Schau dir dazu auch in der OH das Thema OnMouseMove, Example an.
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin if ssLeft in Shift then { make sure button is down } begin .... |
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 06:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz