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!
erstmal direkt ein danke an alle, ich arbeite gerade an meiner Bachlorarbeit und damit auch das erste mal mit LabView (Version 7.1, englisch) und konnte dank dem Forum hier oftmals schon gute Hilfen finden.
Jetzt hab ich aber mal eine Frage die ich bisher so oder so ähnlich noch nich gefunden habe und zwar möchte ich eine Eingabe per Touchscreen programmieren. Das nötige SubVI mit dem Aufruf der Tastatur und einem Wert der zurück gegeben wird habe ich bereits gebastelt. Allerdings möchte ich nun das beim anklicken eines beliebigen Feldes (hierbei sollen Felder für Zahlen und Strings auch unterschieden werden) sich die entsprechende Tastatur, also Nummernblock oder komplett, öffnet. Soweit ist das auch kein Problem, da ich einfach ein event programmiert habe welches auf "Mouse Move" einfach mein Nummernblock startet, aber danach komme ich nicht direkt weiter. Ich muss ja bestimmen in welches Feld geklickt wurde um dieses später auch zu beschreiben, da habe ich zunächst für jedes Feld ein PropertyNode erzeugt und frage dort den "KeyFocus" ab, alle Boolean kommen in ein Array, dies wird in int konvertiert und dann über eine Switch-Case-Anweisung rufe ich den Nummernblock mit direkt angehängter lokalen Variablen auf ... wie ihr seht is das ziemlich umständlich und für meine Anwendung auch deutlich zu Ressourcenfressend.
Gibt es eine Möglichkeit, beispielsweise über klassen, alle felder abzufragen, dann nach den nummerischen oder den textfeldern zu filtern und dann genau das eine rauszupicken welches gedrückt wurde?
Das Event selbst gibt nur die Aktion auf das es reagiert hat und das VI in dem es aufgerufen wurde zurück oder lässt sich dort vielleicht schon eine Abfrage starten??
Wie ihr seht eine Menge fragen, wer kann mir helfen??
Danke im schonmal
RE: Neuling hat eine Frage - Eingaben und ein Event
(04.08.2011 08:15 )M@rRy schrieb: Soweit ist das auch kein Problem, da ich einfach ein event programmiert habe welches auf "Mouse Move" einfach mein Nummernblock startet, aber danach komme ich nicht direkt weiter. Ich muss ja bestimmen in welches Feld geklickt wurde um dieses später auch zu beschreiben, da habe ich zunächst für jedes Feld ein PropertyNode erzeugt und frage dort den "KeyFocus" ab, alle Boolean kommen in ein Array, dies wird in int konvertiert und dann über eine Switch-Case-Anweisung rufe ich den Nummernblock mit direkt angehängter lokalen Variablen auf ... wie ihr seht is das ziemlich umständlich und für meine Anwendung auch deutlich zu Ressourcenfressend.
Hm, das hört sich jetzt auch in erster Linie kompliziert ran. Spontan fällt mir etwas anderes ein:
Du könntest alle Zahlenfelder in einen Eventcase legen (Man kann ja mehrere Ereignisse auf den gleichen Eventcase registrieren). Dann könntest du die Tastatur mit Nummerblock (also das SubVI) aufrufen. Als zweites könntest du alle Stringfelder in einen Eventcase legen und die Tastatur ohne Nummernblock aufrufen. Bleibt noch das Thema, dass du nicht weißt, von welchem Element das Event ausgelöst wurde. Dies geht aber auch, da du bei jedem Eventcase auch die Referenz des Objektes mitbekommst, womit du wiederrum weist, wer das Event ausgelöst hat. Wenn du von deinem SubVI den Wert zurückbekommst, kannst du diesen mittels Porpertynode an dein Element schreiben. Sollte so funktionieren Ist es ungefähr rübergekommen, was ich meine?
Weiterhin könntest du mal dein VI/Screenshots hochladen, damit man sich das ganze etwas besser vorstellen kann.
Beste Grüße,
NWO
9 von 10 Stimmen in meinem Kopf sagen: Ich bin nicht verrückt,
die andere summt die Melodie von Tetris.
NI schrieb:To use the abort button is like using a tree to stop a car!
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: Neuling hat eine Frage - Eingaben und ein Event
Lad' mal Dein VI hoch.
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
04.08.2011, 08:43 (Dieser Beitrag wurde zuletzt bearbeitet: 04.08.2011 09:25 von M@rRy.)
RE: Neuling hat eine Frage - Eingaben und ein Event
Das mit dem Event und das dieses auf alle Tastenfelder reagiert habe ich genau so gemacht.
Der Hintergedanke mit der Klasse war folgender, irgedwann werde ich ja nich mehr sein, wenn dann jemand ankommt und das hier ändern möchte wäre es super leicht für den jenigen, da er beispielsweise ein neues controll nirgends einbinden müsste, die Klasse würde es ja "von selbst" mit aufnehmen und sollte es angeklickt werden, auch dieses beschreiben. Also die Erweiterbarkeit wäre echt gut.
Im Anhang ist das momentane VI. Ich bastel noch ein wenig, vielleicht kriege ich das ganze ja doch irgendwie hin, bin dennoch für jeden Tipp dankbar.
RE: Neuling hat eine Frage - Eingaben und ein Event
Guten Morgen!^^
Also es schaut so aus das ich jetzt erstmal alles zum laufen bekommen habe was ich so wollte. D.h. ich habe eine Referenzierung auf sämtliche controls mit filterung der Nummerischen hinbekommen. Das Problem was ich noch immer habe ist das ich daraus jetzt ein event bauen möchte. Also ich habe die Labels (könnte auch die Referenz selbst nehmen, is nur ein klickt im PropertyNode) und möchte das beim klicken in eines der nummerischen Controls das event gestartet wird. Versucht habe ich es über ein Array welches ich als event registriert habe, da regiert das Programm aber dann auch nur auf das Array und nicht auf den Inhalt. Wie kann ich das geschickt lösen?
Edit: Zweiter Versuch über einen String ging auch inne Hose, da wird nur auf das Control vom String selbst das Event gestartet.
05.08.2011, 10:03 (Dieser Beitrag wurde zuletzt bearbeitet: 12.10.2011 10:34 von A.Berndsen.)
RE: Neuling hat eine Frage - Eingaben und ein Event
Ah ich habs hinbekommen. Für alle die es interessieren sollte hänge ich ein Beispiel Programm an. Das Beispiel zeigt die Funktion in der Form eines kleinen Ratespiels.
Es ist jetzt möglich individuell viele Controlls hinzuzufügen und durch das aufnehmen bei Programmstart ein event auf eines der Controls zu starten.