Laden...

DrawLine -> Enden verschieben

Erstellt von schnecke vor 18 Jahren Letzter Beitrag vor 18 Jahren 9.553 Views
S
schnecke Themenstarter:in
223 Beiträge seit 2005
vor 18 Jahren
DrawLine -> Enden verschieben

Hey,

ich zeichne Linien mit DrawLine und würde gerne, dass man die Enden der Linien mit der Maus verschieben (= bewegen) kann. So das der User selber wählen kann, ob die Linien senkrecht, vertikal oder diagonal läuft (da er sie je verschieben kann). Ich weiß aber momentan keinen rechten Ansatz dafür um ...

a) einen MouseEvent an den Linienenden zu bekommen
b) Die Enden zu verschieben (vll. im Paint-Ereignis einfach die x bzw. y-Koordinaten an die der Maus anpassen...)
c) ....überhaupt alles...

Schön wäre es auch, wenn man die Linien größer und kleiner machen könnte... mhhh.... also wenn jemand eine Idee hat... her damit 🙂

Grüße!

0
767 Beiträge seit 2005
vor 18 Jahren

a) die koordinaten beider linienenden in dem control, oder form merken (besser ein control)

b) im mousedown event prüfen ob die mousekoords mit einer der linien koords übereinstimmen (ggf mit etwas freiraum, damit der benutzer nicht soo genau clicken muss)

b1) irgendwas auf true setzen, das erst im mouseup wieder auf false gesetzt wird

c) im mousemove event auf dieses true testen und die koordinaten neu setzen sowie ein Invalidate() auslösen um das control neu zu zeichnen (wodurch die verschobene linie sichtbar wird)

loop:
btst #6,$bfe001
bne.s loop
rts

0
767 Beiträge seit 2005
vor 18 Jahren

da fällt mir ein:

du kannst auch allgemein im mousemoved event prüfen ob du zufällig "in der nähe" einer koordinate bist, und dann diese hervorheben (klitzekleines quadrad drumrum zeichnen) damit der user merkt was los ist, und ein click was bewirken könnte...

loop:
btst #6,$bfe001
bne.s loop
rts

S
schnecke Themenstarter:in
223 Beiträge seit 2005
vor 18 Jahren

Danke für die Tipps... so in der Art habe ich auch schon gedacht...

Aber habe nun diese Seite gefunden: http://www.codeproject.com/csharp/lineditor.asp#xx1055999xx

da ist schon so ziemlich das, was ich will....

ABER 😉
Wir wäre es möglich, zu der Linie noch eine Beschreibung hinzuzufügen? z.B. per DrawString.... ?!

S
schnecke Themenstarter:in
223 Beiträge seit 2005
vor 18 Jahren

Na da antworte ich mir doch mal wieder selber 🙂

Ich habe mir jetzt eine Linien-Klasse gebaut, die Start- und Endpunkt hat sowie einen Beschreibungs-String...und wenn ich dann im Paint() alle Linien zeichne, mache ich einfach ein DrawString(myLine.Info, ...) mit ... =)

Hey, das war ja doch ganz einfach 8)

I
1.739 Beiträge seit 2005
vor 18 Jahren

Hast du alles was du brauchst?
Als Empfehlung: lies auch Diskussion zum Projekt. Bleibts bei den Linien selbst, ist Lösung genügend, lesen würd ichs trotzdem(es sei denn ist das letzte Projekt).

S
schnecke Themenstarter:in
223 Beiträge seit 2005
vor 18 Jahren

Was meinst du mit Diskussion zum Project?! 🤔

I
1.739 Beiträge seit 2005
vor 18 Jahren

Am Ende werden Fragen gestellt, Also Artikel + Forum. Einfach runterscrollen.