Eingabefokus auf bestimmte Zeile in Stringarray - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Eingabefokus auf bestimmte Zeile in Stringarray (/Thread-Eingabefokus-auf-bestimmte-Zeile-in-Stringarray) |
Eingabefokus auf bestimmte Zeile in Stringarray - th13 - 24.10.2013 10:05 Hallo allerseits, ich programmiere seit einem Monat mit LabView und habe bisher hier still mitgelesen. Nun ist aber ein Problem aufgetaucht, bei dem ich nicht weiterkomme und euch daher um Hilfe bitte. Ich habe ein Stringarray als Control und möchte auf eine bestimmte Zeile (= n-ter String) den Eingabefokus setzen, so dass Eingaben vom Nutzer direkt im richtigen Index landen. Momentan muss er die Zeile noch selbst auswählen. Da der Index von einer externen Variable abhängt, wollte ich den Fokus selber setzen und damit Fehleingaben verhindern. Es gibt zwar ein Property ArrayElement->KeyFocus, aber meine Versuche damit hatten nicht den gewünschten Erfolg, da ich auch nicht herausgefunden habe, auf welches Element man damit zugreift. Oft war es das letzte, aber nicht immer. Kommt man an eine Liste aller Elemente, die ich dann durchgehen könnte und den Fokus dann für jedes Element setze? Als Alternative kann ich natürlich eine entsprechende Anzahl einzelner Strings generieren, aber obige Lösung wäre schon eleganter. Evtl. könnt ihr mir ja einen Hinweis geben, wie ich das umsetzen kann. Thomas RE: Eingabefokus auf bestimmte Zeile in Stringarray - GerdW - 24.10.2013 10:17 Hallo th, möglicher Workaround: Erstelle ein String-Eingabefeld, welches der User zur Eingabe nutzt und schreibe diese Eingabe dann ins richtige Array-Element... Hintergrund: - Ein Array-Control/-Indicator ist meist sehr unübersichtlich auf dem FP, man sollte andere "schönere" Eingabemöglichkeiten nutzen. - Einen mehrzeiligen Text muss man nicht in einem Array präsentieren, dafür kann man auch ein normales Eingabefeld nehmen... - Manchmal ist es wirklich hilfreich, interne Datenspeicherung (Array) von der Darstellung auf dem FP zu trennen (einzelne Strings oder auch ein Cluster)! RE: Eingabefokus auf bestimmte Zeile in Stringarray - BsaiboT - 24.10.2013 10:43 Hallo th, soweit mir bekannt ist, kann man nur bei Tabellen den Focus zur Bearbeitung programmatisch setzen. Bei Arrays kann man lediglich eine bestimmt Zelle hervorheben, aber nicht explizit zum editieren durch den Nutzen aktivieren. Ansonsten schliesse ich mich Gerd zu 100% an. Gruß, //Tobias RE: Eingabefokus auf bestimmte Zeile in Stringarray - th13 - 24.10.2013 11:12 Hallo, danke für eure Beiträge. Die Idee mit dem extra Feld und einem Übernehmen-Knopf, der den Wert in die entsprechende Zeile schreibt, ist auch nicht schlecht. In der Zwischenzeit habe ich mit einzelnen Strings experimentiert und bin zu einer Lösung gekommen, mit der ich ganz gut leben kann und die bei Bedarf auch einfach erweiterbar ist. Für alle interessierten hänge ich das vi mal an. Thomas RE: Eingabefokus auf bestimmte Zeile in Stringarray - Lucki - 24.10.2013 13:05 Wobei das Programm noch etwas einfacher wird, wenn man die Strings in einem Cluster zusammenfasst. Man hat dann außerdem den Vorteil, dass man daraus mit der Funktion "Cluster to Array" jederzeit den ursprünglichen Array erzeugen kann, mit dem das Programmm meist viel einfacher wird als mit den einzelnen Strings. [attachment=46917] RE: Eingabefokus auf bestimmte Zeile in Stringarray - th13 - 24.10.2013 15:11 Danke Lucki, das ist noch einfacher zu erweitern, die Änderung mit dem Cluster übernehme ich gern. Allerdings hast du die Reihenfolge der Properties (Disabled und KeyFocus) geändert und damit bekommt man den Fokus nur, wenn der Index nochmal ausgewählt wird. Man muss erst enablen und dann den Fokus setzen. Mittlerweile habe ich auch eine Variante bekommen, die mit Arrays funktioniert. Aber um den Urheber zu zitieren: "Es geht, ist aber sehr häßlich". Im Prinzip simuliert er einen Mausklick an der entsprechenden Position. Thomas Edit: Bemerkung zu Reihenfolge der Properties |