Mouse-Event Wert speichern

Hallo Ihr,

ich möchte gern mit einem Mouseup-Event eine Koordinate speichern und die Coordinate beim 2ten Click auch. Wie stelle ich das am besten an? Mit einer Schleife oder mit globalen Variablen oder ähnlichem?

Würde mich sehr über Tipps, Infos freuen!
 
Du kannst zum Beispiel ein Element vom Typ System::Collections::Queue^ erstellen und dann überprüfen, ob 0 oder 1 Element drin sind, dann weisst du, ob es Klick 1 oder 2 ist. Beim ersten Mal fügst du den Punkt ein und beim zweiten Mal kannst du ihn wieder auslesen.

Wichtig ist hier, dass das Prinzip First in - last out verwendet wird. Das heisst in diesem Fall mit 2 Elementen folgendes:

Situation Anfang:

|
|
|

Nirgendwo ist ein Element drin. Situation nach erstem Klick:
|
|
- 1

Zu unterst ist der erste Punkt. Situation nach zweitem Klick:

|
- 2
|
- 1

Wenn du jetzt also ein Element rausholst, kommt zuerst die 2 und erst nacher die 1.
 
Danke für den Tipp!
Wie würde ich denn überprüfen ob schon etwas vorhanden ist? Mit if ( !=null) oder so

Nur ich frage mich ob der Mouse-Event die Clicks/Koordinaten automatisch speichert oder diese quasi nach jedem Click wieder löscht, das ist glaub ich mein Problem- denn je nachdem muss ich ja mein Event bzw. Methode aufbauen.
 
Also wenn du auf einem Steuerelement ein MouseUp-Event definierst, wird diese Funktion automatisch aufgerufen und in den Eventargumenten stehen die Koordinaten des Klicks bzw. des Upevents. Somit hast du immer die aktuellen Koordinaten.

Du hast das Attribut Queue::Count zur Verfügung wenn du die Anzahl Elemente überprüfen möchtest
 
Also du hast ja den Event für MouseUp gemacht, oder? Da hast du ja auch ein Argument vom Typ System::MouseEventArgs^ (meist e genannt). Du kannst dann via e->Location.X bzw. e->Location.Y findest du den Punkt. Aber du musst beachten, dass dies immer relativ zu dem Steuerelement ist, auf das der Event gelegt ist.

Queue::Enqueue kannst du verwenden, um einen Punkt abzulegen. Und mit Queue::Dequeue holst du das oberste Element wieder weg.
 
Ah ok. :)
Aber ich glaube dass ich Queue nicht zur Verfügung habe..naja werd morgen mal schauen was ich da sonst so hab was in die Richtung geht;)
 
Zurück