Entwickler-Ecke
Multimedia / Grafik - Zeichnen wie in Paint
knut333 - Do 29.09.05 16:24
Titel: Zeichnen wie in Paint
Hallo. Ich habe ein Image und möchte wie in Paint darauf zeichnen können.
Der Befehl onmousemove zeichnet dabei allerdings die ganze Zeit. Ich will aber, dass nur wenn man die Maustaste gedrückt hält, gezeichnet wird. (alos so wie in Paint). ... wie mache ich das denn?
DarkHunter - Do 29.09.05 16:36
Ist relativ einfach
mach in der mousemoveprozedur einfach ein abfrage ob die maustaste gedrückt wurde.
Ich habe das mal vor einiger zeit so gelöst:
In der Mousdown wurde ein variable auf true gesetzt
in der mouseup wieder auf false
in der mousemove wurde nur gezeichnet wenn die Var true ist
FinalFantasy - Do 29.09.05 16:37
Du könntest dir eine Variable anlegen, in der du dir merkst, ob die Maustaste gedrückt ist, und dann zeichnest du im MouseMove nur, wenn die Maustaste auch wirklich gedrückt ist.
Etwa so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button = mbLeft then ButtonPressed := true; end;
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if ButtonPressed then begin end; end;
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button = mbLeft then ButtonPressed := false; end; |
Code nicht getestet!!!
Edit: Ok, war ich mal wieder zu langsam... Na dafür hast du jetzt auch noch ein Codebeispiel ;-)
DarkHunter - Do 29.09.05 16:45
Der Code sollte eigentlich gehen
Noch ein Tip für das Zeichnen:
Zeichne immer Linien zum nächsten Punkt, so stellst du sicher das du eine durchgehende Linie hat.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!