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 

Zugriff auf Textlabels in Klassen



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!

05.09.2014, 11:56 (Dieser Beitrag wurde zuletzt bearbeitet: 05.09.2014 11:57 von cpinkle.)
Beitrag #1

cpinkle Offline
LVF-Grünschnabel
*


Beiträge: 37
Registriert seit: Feb 2006

2012
2005
EN

71522
Deutschland
Zugriff auf Textlabels in Klassen
Hallo,

Ich bin mal wieder an meine Grenzen gestossen. Vielleicht hab ich auch wieder nur ein Verständnisproblem und so wie ich mir das vorstelle funktioniert das garnicht.... Blush

Ich brauche die Textlabels aus meinem Klassenobjekt. Sagen wir mal es heisst Waldemar.ctl in der Klasse Waldemar.lvclass.

   

Normalerweise wenns nur ein einfaches Cluster wäre würde ich das so machen.

   

Aber in Klassenobjekten scheitere ich kläglich, da ich einfach nicht an die Referenzen der einzelnen Controls im Waldemar.ctl rankomm. Gibt es da ne Möglichkeit?

Im Moment hab ich mir da mit typedefs von Controls geholfen. Ich definiere ein typedef, schiebe das in Waldemar.ctl. Und wenn ich die Labels brauche schiebe ich mir noch ein zusätzliches Control von dem typedef in das VI hin. Leider find ich diesen Würgaround nicht schön. Das muss doch eleganter gehen.

Würd mich über jegliche Hilfe freuen und ihr wisst bestimmt wies richtig geht! Vielen Dank im Voraus!

Cheerio Carsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
05.09.2014, 12:03
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Zugriff auf Textlabels in Klassen
Wie wäre es, dafür eine eigene Methode zu schreiben?

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.09.2014, 12:33
Beitrag #3

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Zugriff auf Textlabels in Klassen
(05.09.2014 12:03 )jg schrieb:  Wie wäre es, dafür eine eigene Methode zu schreiben?

Gruß, Jens

Genau richtig! Die Klassen-Attribute sind immer privat. Von ausserhalb der Klasse kannst Du eh nicht das zrugreifen. Also ist eine explizite Methode das richtige.

Ich nehme an, dass Du die Namen der Klassen-Attribute auch nicht jeden Tag ändern wirst.

Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.09.2014, 12:33
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zugriff auf Textlabels in Klassen
Hallo cpinkle,

Zitat:Aber in Klassenobjekten scheitere ich kläglich, da ich einfach nicht an die Referenzen der einzelnen Controls im Waldemar.ctl rankomm.
Ist es nicht der Sinn von Objekten, eben den Objektinhalt strikt vor der Außenwelt abzuschirmen und den Zugriff darauf nur über Methoden der zugehörigen Klasse zu erlauben?
Also Jens' Vorschlag nutzen…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.09.2014, 13:23 (Dieser Beitrag wurde zuletzt bearbeitet: 05.09.2014 13:24 von cpinkle.)
Beitrag #5

cpinkle Offline
LVF-Grünschnabel
*


Beiträge: 37
Registriert seit: Feb 2006

2012
2005
EN

71522
Deutschland
RE: Zugriff auf Textlabels in Klassen
Danke erstmal für die schnelle Rückmeldung!

Die Daten sollen privat sein und innerhalb der Klasse bleiben. Das ist richtig. Ich möchte die Labels auch nicht innerhalb, noch von ausserhalb überschreiben.
Ich möchte nur innerhalb der Klasse die Labels der Controls in Waldemar.ctl als Liste von Strings auslesen.

Ich würd ja auch eine Methode in der Klasse Waldemar.lvclass schreiben, aber ich kann ja keinen Accessor auf Labels oder dergleichen machen.
Ich kann mit einem Accessor immer nur auf den Wert zugreifen, oder hab ich da was falsch verstanden?

VG Carsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.09.2014, 13:26 (Dieser Beitrag wurde zuletzt bearbeitet: 05.09.2014 13:27 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zugriff auf Textlabels in Klassen
Hallo cpinkle,

du erstellst dir eine Methode, die einfach die zum Zeitpunkt der Erstellung dieser Methode verwendeten Labels aus Stringarray-Konstante enthält und ausgibt. Wie BNT schon sagte: so oft wirst du doch die Struktur deines Objekts nicht ändern…

Wozu willst du das überhaupt programmatisch zur Laufzeit lösen?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.09.2014, 14:33
Beitrag #7

cpinkle Offline
LVF-Grünschnabel
*


Beiträge: 37
Registriert seit: Feb 2006

2012
2005
EN

71522
Deutschland
RE: Zugriff auf Textlabels in Klassen
Hallo GerdW,

Ok so ähnlich mache ich es ja auch und zwar mit meinen "typedefs".

Meine Idee dahinter ist, nicht in Waldemar.ctl Anzahl X Labelnamen zu ändern, und dann auch noch X-mal in der Stringarray Konstante in meiner Methode.
Ich möchte einen zentralen Punkt haben, wo ich die Labelnamen bündele und auch im Bedarfsfall ändern kann, ohne an 2 oder 3 Stellen das Ganze zu machen. Der Kunde ist König... Wink
Und der Kunde ändert gerne, sag ich euch...Blink
Die Labelnamen nutze ich auch als Begleittext in der Ausgabe, um zu erklären welches Bit gerade wie steht. Beispiel: "GPIO_1 = 1". Dann heisst das Control auch "GPIO_1".

Meine Lösung sieht wie folgt aus:
Ich definiere mir ein Control als "typedef", beispielsweise ein Cluster mit mehreren Booleans und Numerics.
Dann setze ich dieses definierte Control in Waldemar.ctl ein.
Dasselbe definierte Control nutze ich auch in der Methode zum Auslesen der ganzen Labeltexte, das ist halt ein extra Control was ich spendieren muss.
Waldemar.ctl als auch die Methode zum Auslesen der Labels enthalten dasselbe definierte Control und sind somit verknüpft. Im Falle von Änderungen
brauche ich nur das definierte Control anpassen und beides wird angepasst.

Ich dachte ich könnte mir das Extra Control in der Methode sparen, indem ich auf das Control in Waldemar.ctl zugreifen kann....
Ich hoffe ich konnte es einigermassen erklären, warum ich das mache.... Blush

VG Carsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.09.2014, 15:16 (Dieser Beitrag wurde zuletzt bearbeitet: 05.09.2014 15:17 von BNT.)
Beitrag #8

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Zugriff auf Textlabels in Klassen
Das hört sich fast nach einem ähnlichen Problem an , wie es beim Umschalten von Sprachen existiert.

Meiner Meinung nach sollte ein Label die Funktion eines Attributs oder eines Anschlusses der Connetor-Pane bezeichnen. Für Laufzeit spezifische Anpassungen wäre doch eher die Caption geeignet.

Das löst zwar nicht Deine Problem, zeigt aber, dass Dein Programmentwurf nicht optimal ist. Funktion und Darstellung sollten entkoppelt sein.

Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.09.2014, 15:18
Beitrag #9

Kiesch Offline
LVF-Stammgast
***


Beiträge: 415
Registriert seit: Mar 2009

2019, 2018, 2016
2009
DE

04519
Deutschland
RE: Zugriff auf Textlabels in Klassen
Ka. ob dir das hilft, aber zumindest kannst du aus der Referenz auf dein Objekt den Text in der Kontexthilfe auslesen. Wenn du also entsprechend richtig dort beschreibst (mit irgendeinem Marker) wie die einzelnen Attribute heißen und die in der richtigen Reihenfolge reinpackst solltest du so eine Liste wie du möchstest auch aus der Kontexthilfe zusammenparsen können und müsstest dann nur noch das Objekt und den Hilfetext ändern wenn sich am Objekt irgendwas ändert.

Aber sinnvoller ist vermutlich trotzdem eine interne Liste im Objekt zu haben die die NAmen der Attribute beinhaltet.

Zitat:Märchen und Geschichten werden erzählt am Lagerfeuer, technischen Fakten werden mitgeteilt (oder so). (Genauso wie Software nicht auf einem Server "herumliegt", die ist dort installiert.)
*Zitat: IchSelbst*
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.09.2014, 15:20
Beitrag #10

GerdW Offline
______________
LVF-Team

Beiträge: 17.480
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Zugriff auf Textlabels in Klassen
Da kann ich BNT nur zustimmen.

Anwendungsfall: Deine Hardware bietet ein festgelegte Anzahl GPIO-Pins an, die auch noch eine festgelegte Bezeichnung haben (z.B. GPIO03). Wenn dieser Pin jetzt eine "Bedeutung" (z.B. "PWMOutPump") bekommt, kann man diese im Label des zugehörigen UI-Elements darstellen…

Oder glaubst du etwa, ich kompiliere jedesmal meine komplette Prüfstandssoftware, weil sich im PST-Aufbau der Name eines Drucksensors oder eines Schalters ändert?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Klassen mit komprimierten Bibliotheken 83DM 1 6.239 09.08.2016 13:45
Letzter Beitrag: BNT
  Klassen verbinden oryx 4 10.533 07.05.2015 15:33
Letzter Beitrag: oryx
  Dateiorganisation mit Klassen - Verzeichnis umbennen? Kiesch 0 7.764 05.02.2014 13:19
Letzter Beitrag: Kiesch
Sad Klassen in aktivem Projekt modifizieren/austauschen schnuufe 5 13.120 24.02.2012 13:45
Letzter Beitrag: Kiesch
  Neuling, was bringen mir Klassen, LVOOP dali4u 6 18.520 24.02.2012 13:40
Letzter Beitrag: Kiesch
  [gelöst] Dynamische Vererbung über die Grenzen von Klassen hinweg davidwm 5 13.807 04.05.2011 14:05
Letzter Beitrag: davidwm

Gehe zu: