LabVIEWForum.de - Array Anzeige auf belegte Elemente beschränken

LabVIEWForum.de

Normale Version: Array Anzeige auf belegte Elemente beschränken
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Moin zusammen,

Auf meinem Frontpanel habe ich eine Arrayanzeige untergebracht. Angezeigt wird immer ein Element. Über die Indexanzeige kann man den angezeigten Index einstellen. Ist es möglich, zu verhindern, dass ein Index gewählt wird, der nicht belegt ist? Also wennim Array 5 Elemente sind, dann sollten nur die Indizes 0-4 gewählt werden können.

Ausnahme: Wenn kein Element im Array ist, sollte der leere Index "0" angezeigt werden!

LG
Torsten
Ich wüsste jetzt auch keine Einstellung für das.
Kannst du aber selber machen mit Array-Grösse und Property "IndexVals".

Mache jetzt mal kein Bsp. damit du was fürs Wochenende hast. Wink
' schrieb:...
Mache jetzt mal kein Bsp. damit du was fürs Wochenende hast. Wink
...

Schade, ich hab nämlich grade keinen Schimmer wie das laufen könnte. Also bisher ist es so, dass ich sobald ein Fehler auftritt, diesen Fehler in ein Array schreibe und das Array auf dem FP angezeigt wird. Über den Eigenschaftsknoten IndexWerte setzte ich das angezeigte Element immer auf den letzten Fehler. das klappt gut, damit bin ich zufrieden. manuell kann man dabei durch alle Fehler durch indizieren. aber eben auch darüber hinaus. ich könnte nun natürlich ein event abfangen "Index Changed" und wenn der Wert ungültig ist, auf die entsprechende Stelle zurück schalten. Aber das finde ich irgendwie zu aufwändig.
' schrieb:Aber das finde ich irgendwie zu aufwändig.
Find ich nicht.

Ich hab das mal so gemacht: [list]
[*]Array-Index-Auswahl ausblenden. <>
[*]Eigenes I32-Eingabefeld anstelle der Array-Index-Auswahl plazieren. <>
[*]Dort, wo sich die Array-Index-Anzahl ändert, werden Min und Max des eigenen I32-Eingabefeldes angepasst.<>
[*]Jetzt kann also automatisch nur noch zwischen Min und Max eingegeben werden.<>
[*]Im OnChange-Event des eigenen I32-Eingabefeldes wird das Array-Index per IndexValue gesetzt.<>
[st]Zweck der Übung: Jetzt steht beim Array-Index 0 nicht mehr "Nullter Prüfling", sondern "Erster Prüfling". Sehr schön für den Kunden und die Bedienung der Oberfläche. Aber aufwändig. Fazit: nie weider solche schönen Sachen in LV. ^_^
Nein, das musst du wirklich selber programmieren.

Und ein Event für "Index-Changed" bei Arrays gibt es auch nicht.

Folgende Idee dagegen könnte funktionieren: Du machst den Index beim Array nicht sichtbar. Stattdessen gibt es ein neues Eingabe-Element vom Typ Integer.

Und hier kannst du per PropertyNode den Eingabebereich vorgeben.

Anbei ein schnell zusammengezimmertes Bsp, dass das Prinzip verdeutlicht.
Lv86_img[attachment=17226]

Gruß, Jens

EDIT:Hehe, IchSelbst hat dieselbe Idee...Cool, Unterfranken ist sich einig.
Danke für die Tipps. Evtl gelingt es mir ja auch, ein eigenes Ereignis zu definieren!? Ich bin ja noch in der Lernphase und probier gerne so allerlei aus. Meistens lernt man was dabei. Ansonsten werd ich wohl die "Unterfränkische Lösung" implementieren.

LG und ein schönes Wochenende
Torsten
' schrieb:Ansonsten werd ich wohl die "Unterfränkische Lösung" implementieren.
Na ja, Gott. Auch die bayrische Staatregierung implementiert manchmal (Unter-)Fränkische Lösungen. Laber
den endwert kannst anpassen wie du moechtest (entweder greater or greater equal)
Lv86_img
@thomas: Dein Bsp hat einen kleinen Schönheitsfehler: Wenn ich mal den maximalen Index anzeige, komme ich da nicht mehr raus (zumindest nicht mit Mausklicks).

Gruß, Jens
natuerlich hat es schoenheitsfehler, du siehst doch wieder code aussieht :-)
Bei mouse down gibts noch die coordinates mit dem man die area of interest noch genauer einschraenken kann mit der position und den boundaries vom control
Seiten: 1 2
Referenz-URLs