Am 04.04.2011 um 09:48 schrieb Stefan Sicurella: > Hi, > > kennt jemand ein gutes Beispiel, das zeigt wie man auf einem Canvas Objekte > (Bilder,Schrift usw) platzieren und mit der Maus verschieben kann?
Vielleicht ging meine erste Antwort von falschen Voraussetzungen aus (= alle Objekte gemeinsam verschieben). Wenn du sie einzeln verschieben willst, dann hast du vor allem das Problem herauszufinden, auf welchem Objekt das MouseDown-Ereignis stattfindet. Da würde ich so vorgehen: 1. Keine Grafik-Objekte (ausser BasisPicture) direkt in den Canvas schreiben. 2. Ein Basis-Picture definieren, in das du die Objekte wiederum als Pictures ausgibst. 3. Ein zum Basis-Picture identisches Picture mit weissem Hintergrund definieren, das du nie ausgibt (ein Dummy). 4. Durch eine Methode sicherstellen, dass du für deine Objekte einen Index hast (kann dadurch gewährleistet sein, dass du die Objekt-Pictures in einen Array aufnimmst) 5. Ins Dummy Picture ein FillRect mit der Dimension und am Ort des Objektes ausgeben, dessen Farbe den Index des Objektes abbildet (Basis sollte wegen Konflikten mit weiss und schwarz zur Sicherheit 1 sein!) 6. Bei der Mausebewegung (Down oder Drag etc.) die Farbe unter den Koordinaten des ausgegebenen Pictures im Dummy Picture feststellen und die Farbe in einen Integer zurückwandeln. 7. Der zurückgegebene Wert ist der Index des betroffenen Objektes (oder er ist ausserhalb!). 8. Objekt verschieben, d.h. am neuen Ort ausgeben (X,Y-Differenzen zwischen Down und Up (resp. Drag)). 9. Nach der Bewegung das Dummy-Bild neu aufbauen. Das geht mit 2D wesentlich besser als mit 'normalen' Pixelbildern, weil du dich nicht ums Löschen kümmern musst. Dann gibst du 2D-Objekte und nicht Pictures im BasisPicture aus. Das Dummy-Picture muss aber PixMap sein. Wenn du alles zusammen verschieben musst, dann kannst du übrigens einfach das BasisPicture verschieben. Ähnliches habe ich schon gemacht. Du kannst mit 2D auch sehr leicht skalieren. Nur beim Drehen wäre ich vorsichtig (kann langsam sein und kann Texte holprig machen (jedenfalls wenn man die Buchstaben einzeln behandelt, was ich aus bestimmten Gründen musste). Grundlinie wird dann sehr unschön.). MfG Karl > Gruß > > Stefan >