INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Objektorientiertes Programmieren mit LV



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

11.08.2009, 22:02
Beitrag #75

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
Objektorientiertes Programmieren mit LV
' 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.


Angehängte Datei(en)
Sonstige .zip  MP3.zip (Größe: 86,76 KB / Downloads: 193)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
Objektorientiertes Programmieren mit LV - unicorn - 11.08.2009 22:02

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Objekt-Orientiertes Programmieren mit LV8.5 robertow 1 9.627 16.08.2008 23:10
Letzter Beitrag: eg

Gehe zu: