' schrieb:Nein ist kein Bestandteil.
Der User soll es als ganz normales Auswahl Element verwenden nur mit dem Vorteil, dass ich direkt das Objekt im Code verarbeiten kann.
Beispiel:
Klasse: Mp3 (Member: Pfad, Dateiname, Sänger, Zeit, Title, .....)
Ich erstelle jetzt eine Methode LESE VERZEICHNIS.
Alle vorkommenden Mp3 Dateien werden als Objekte gespeichert und deren Member ausgefüllt. Ich erhalte folgende Mp3 Objekte
c:mp3, WollePetry-Lied1.mp3, Wolle, 2min, Lied1,....
c:mp3, WollePetry-Lied2.mp3, Wolle, 2min, Lied2,....
Wenn ich jetzt eine Liste(Array) auf dem FrontPanel mache, sollte automatisch der Titel + Sänger angezeigt werden.
Wolle-Lied1
Wolle-Lied2
Es handelt sich hierbei nicht um Strings, sondern um Objekte von Mp3, der Benutzer sieht allerdings nur Titel+Sänger.
Bei einem Klick auf Wolle-Lied1 wird ein Event jetzt aufgerufen und führt dazu, dass ich ganz einfach im EventCase, das mp3 objekt bekomme (durch casten).
(mp3)ArrayElement
Und nun kann ich auf alle Methoden und Member von dem ausgewählten Objekt des Benutzers zugreifen.
z.B. mp3.Zeit
Ich arbeite also mit Objekten und nicht mit irgendwelchen Variablen wie Indizes, wo ich erst noch in anderen Arrays suchen muss und so.
Zusätzlich zu der noch offenen stehenden Frage, wie man Objekte im Array auf dem FP anders darstellen kann, wollte ich gerne wissen: Wie kann ich Member Variablen Public machen? So das ich darauf zugreifen kann ohne extra eine Methoden-Klasse
Gruß und Danke.
p.s:Ich hab jetzt schluß und gucke dann heute abend oder morgen früh nochmal rein.
Das was Du beschreibst ist möglich. Um die Daten (ganz oder teilweise) eines Klassenobjektes anzuzeigen würde ich ein XControl verwenden. Hier lässt sich die ganze Formattierung und Zugriff über die Methoden der Klasse gut Verpacken. Leider lassen sich XControls nicht in Arrays packen (LV8.61f1), so dass ein besonderes XControl für Dein beschriebenes Problem erstellt werden muss: Über einen Property-Node wird das Array von MP3 Objekt an das XControl gegeben, das nun z.B. die Titel aller Objekte in einer Listbox darstellt. Wird nun eine Zeile der Listbox doppelt geklickt, so liefert das XControl aus dem Array das zu dem Titel gehörige Objekt (was natürlich über die indizierung eines Arrays geschied). Im Main.vi wird auf das Event Value change des Xcontrols gewartet und dann das Objekt ausgewertet. Anbei ein Projekt mit Main.VI, MP3-Klasse und einem XControl.
Ansonsten kommt man an die Member-Variablen nur über die Methoden der Klasse heran. Die Member Variablen public machen widerspricht dem Geheimnisprinzips der OOP.