LabVIEWForum.de
Koordinaten Listenfeld - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Koordinaten Listenfeld (/Thread-Koordinaten-Listenfeld)



Koordinaten Listenfeld - simcum - 18.01.2022 12:49

Hallo liebe LabView Gemeinde,

habe ein kleines Problem in der ich nicht vorankomme.

Ich habe auf dem Frontpanel zwei Listenfelder, für die ich die Koordinaten bestimmen möchte.

Genauer gesagt möchte ich gerne erfassen in welcher Zeile ich mich befinde und dann über das Objektsymbol die Zeile auswählen.

Habe dazu auch etwas gemacht aber leider sind meine Koordinaten immer versetzt. Z.B. muss ich ca. die Mitte der Zeile anklicken damit das Objektsymbol sich ändert.

Idealerweise sollte ich bei Eintritt in das Listenfeldfenster links oben mit 0/0 beginnen.
Ich könnte die Differenz zum VI Koordinatenursprung berechnen und es abziehen aber das scheint mir eine nicht elegante Lösung zu sein.
Bei jeder Positionsänderung des Fensters müsste man es anpassen.

Ich kenne die Möglichkeit über den Ereignisstruktur, das möchte ich aber nicht, weil dieses Vi ein Sub vi sein soll und mein HauptVi bereits eine Ereignistruktur besitzt

Besteht die Möglichkeit irgendwie die Koordinaten vom Listenfeld relativ zur Ursprungsposition (Links/Oben Listenfeld) zu bestimmen ?

Mein Vi füge ich mit ein und hoffe auf Unterstützung.

Bedanke mich

Simcum


RE: Koordinaten Listenfeld - GerdW - 18.01.2022 14:08

Hallo simcum,

Zitat:Genauer gesagt möchte ich gerne erfassen in welcher Zeile ich mich befinde und dann über das Objektsymbol die Zeile auswählen.
Das hier ist die einfachste Möglichkeit:
[attachment=62145]
Warum also so viel Aufwand?
(Oder gleich den Value der Listbox abfragen, wenn du auf ein ValueChange-Event reagieren willst/kannst.)

Zitat:Ich könnte die Differenz zum VI Koordinatenursprung berechnen und es abziehen aber das scheint mir eine nicht elegante Lösung zu sein.
Es mag dir nicht "elegant" erscheinen, verspricht aber durchaus korrekte Ergebnisse. Und das wäre etwas, was deine bisherige "Lösung" (die nun wirklich nicht "elegant" aussieht) bisher vermissen lässt…
Anders herum: um Eleganz kannst du dich kümmern, wenn du eine korrekt arbeitende Funktion implementiert hast!

Zitat:Ich kenne die Möglichkeit über den Ereignisstruktur, das möchte ich aber nicht, weil dieses Vi ein Sub vi sein soll und mein HauptVi bereits eine Ereignistruktur besitzt
Du kennst die Event-Struktur, willst sie aber nicht nutzen!? Hmm
(Und zur Begründung gibst du an, dass dein MainVI schon eine Event-Struktur enthält??? Wall)

Wenn es ein subVI sein soll, gibt es doch Optionen:
- Referenz auf das Listbox-Control ans subVI geben und dort dann die Events abfragen, indem du ein userdefiniertes Event nutzt!
- Events im MainVI registrieren und die Events im subVI abarbeiten…


RE: Koordinaten Listenfeld - simcum - 18.01.2022 14:23

Hallo GerdW,

danke für die Antwort. Ich wollte die Ereignisstruktur vermeiden.
Gibt es keinen anderen Weg ohne Ereignisstruktur?

Gruß

simcum


RE: Koordinaten Listenfeld - GerdW - 18.01.2022 14:32

Hallo simcum,

Zitat:Ich wollte die Ereignisstruktur vermeiden.
Warum???

Zitat:Gibt es keinen anderen Weg ohne Ereignisstruktur?
Doch, den hast du doch schon ausprobiert!
Du musst dann eben die Mausposition pollen, aufwändig Koordinaten berechnen (und evtl. nochmal deine ganze Berechnung korrigieren), um dann irgendwann zu wissen, welche Zeile der User ausgewählt hat.
Alles das bekommst du mit der Eventstruktur sehr schnell/einfach/elegant geliefert…


RE: Koordinaten Listenfeld - simcum - 18.01.2022 15:01

ok danke für die Antworten,

werde wohl die Ereignisstruktur verwenden.

Du hast gefragt warum ich die Ereignisstruktur vermeiden möchte.
Die Antwort habe ich in meinen ersten Beitrag zu diesem Thema geschrieben.
Ich habe bereits eine Ereignisstruktur in meinem HauptVi und wollte ein weiteres halt vermeiden.
Es wird ja immer gesagt, das man nicht mehr als eine Ereignisstruktur verwenden soll.

Gruß

Simcum


RE: Koordinaten Listenfeld - jg - 18.01.2022 16:43

(18.01.2022 15:01 )simcum schrieb:  Ich habe bereits eine Ereignisstruktur in meinem HauptVi und wollte ein weiteres halt vermeiden.
Es wird ja immer gesagt, das man nicht mehr als eine Ereignisstruktur verwenden soll.
Die Empfehlung lautet: Nicht mehr als 1 Eventstruktur pro VI (die offizielle von NI nicht mehr als 1 Eventstruktur pro Schleife).

Ich habe eigentlich nie Probleme, wenn mehrere Eventstrukturen in mehreren VIs parallel laufen.
Ein Bsp: Ich hab mir eine API programmiert, mit der ich Elemente einer MCL editieren kann, wobei je nach Mausklick Elemente (z.B. ein String) über ein Feld der Listbox gelegt werden, um dann dort etwas zu editieren (und nicht direkt in der Listbox). Damit ich das vielseitig einsetzen kann, werden die Referenzen der MCL und der Overlay-Elemente an ein SubVI übergeben und dann dort dynamisch Mausklick und Value-Change Event registriert und in diesem SubVI in einer Event-Struktur abgearbeitet - parallel zur Eventstruktur im Aufrufer-VI.

Gruß, Jens