LabVIEWForum.de - Mehrere Frontpanels öffnen

LabVIEWForum.de

Normale Version: Mehrere Frontpanels öffnen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hi

hab mal wieder ein kleines ProblemSmile

und zwar ich habe ein Hauptprogramm wenn ich in meinem Main Vi auf einen weiter Button klicke soll das Frontpanel eines Sub Vi öffnen. das funktioniert auch soweit nur will ich jetzt aus dem geöffneten Frontpanel des Sub Vis wieder mit einem Button klick ein weiteres Fronpanel eines anderen Sub Vis öffnen.
nur passiert da leider nichts.

habe bei Sub VIs mit Boolschen Ausgängen Versehen, Einstellungen der Sub Vi sind (Show frontpanel when called). Vl hat hier jemand einen Idee wie ich das Problem lösen kann.

Lv85_img
Wo sind die SubVIs?

Ein genereller Hinweis zu fast allen deiner Themen bisher: Beschäftige dich mit der Verwendung der Eventstruktur. Das vereinfacht so manches.

Und dannOfftopic2
Darf ich nochmals auf die LVF-Regeln und die Verwendung der Shift-Taste hinweisen (auch Satzanfänge schreibt man großWink)! Ein paar mehr Satzzeichen hätten die Lesbarkeit deines letzten Beitrages ebenfalls erhöht.

Gruß, Jens
so hab mich mal mit der Event Structur beschäftigt. Habe nur ein Problem, ich will wenn ich einen Button drücke (true) das er dann in das erste Event 0 springt. Leider macht das mein Programm nur wenn die Einstellung Value change benutze.

habe ein ganz kleines Prog geschrieben wo ich den Fehler zeigen kann

mfg


Version 8.6
Hier ist eine Möglichkeit. Ich kann leider nur für 8.6 runterspeichern, weil Eventstrukturen vorhanden sind.
Aber ich mach' Dir Screenshots dazu (Die Einstellungen bei Window Appearance (vgl. Screenshot) habe ich bei SubVI1.vi und SubVI2.vi gemacht).

[attachment=23420]Lv86_img
[attachment=23422]Lv86_img
[attachment=23423]Lv86_img

[attachment=23424][attachment=23425]
[attachment=23426][attachment=23427]
[attachment=23428][attachment=23429]
[attachment=23430][attachment=23431]
[attachment=23432]

Gruß Markus

EDIT: Wobei ich sehe gerade, dass nur in Deinem Profil 8.5 steht, Du aber schon 8.6 hast. Bitte Profil_ergaenzen!
Hi danke erstmal für die schnelle Antwort. Eine Frage hätten ich noch dazu warum funktioniert das ganze mit Value change aber nicht mit Key Down oder Key Up



Ich benutze meistens Version 8.5, hab es ausversehen mit Version 8.6 geschrieben. Da bei mir die Version 8.5 eine Vollversion ist und Version 8.6 nur eine Studentenversion
' schrieb:warum funktioniert das ganze mit Value change aber nicht mit Key Down oder Key Up
Damit es auch mit KeyDown und KeyUp funktioniert, muss das Element den Fokus haben. Du hast im Event ja schließlich "Start: KwyDown" angegeben. Sobald du also auf Tab drückst, wird der Event ausgeführt: TAB => Fokus aus Element => Event, weil KeyUp von TAB.

Möglicherweise hast du aber "Applikation: KeyDown" gemeint.
hm ich steh grad glaub ech auf der Leitung. Wenn ich einen Button haben auf dem Frontpanel und will mit diesem Zwei Events steuern dann brauch ich doch applikation Key Down (wenn der Button gedrückt ist) und applikation Key Up (wenn der Button nicht gedrückt ist). Somit kann ich mit Button true in das Event 0 und mit Button false in das Event 1 oder nicht
' schrieb:hm ich steh grad glaub ech auf der Leitung.
Ja simmt. Cool
Hinweis:
Es hat schon was für sich, die Rechtschreibung zu beachten. Dann tut man sich nämlich auch leichter, seine Gedanken in die Worte zu fassen, die genau den eigenen Gedanken entsprechen.

Zitat:Wenn ich einen Button haben auf dem Frontpanel und will mit diesem Zwei Events steuern dann brauch ich doch applikation Key Down (wenn der Button gedrückt ist)
Diese Aussage ist in sich völlig unlogisch.
Das, was du in Klammern geschrieben hast ("wenn der ..."), ist was ganz anderes als das, was vor der Klammer steht ("brauch ich doch ...").

Erstens:
"wenn der Button gedrückt ist" stellt einen Zustand dar. "Wenn der Button gedrückt wird" stellt eine Zustandänderung dar. Beachte, ganz wichtig: Events sind immer Zustandsänderungen - Ereignissse, also eben Events.

Zweitens:
Ein "Application: KeyDown" ist dann, wenn die Applikation den Fokus hat und der Anwender der Applikation eine Taste drückt (nicht: gedrückt hält). Dieser Event aber wird in einer Event-Struktur dargestellt als "Dieses VI: KeyDown". Eine Applikation hat den Fokus dann, wenn die Titelleiste des dazugehörigen Window-Fensters in Blau erscheint (Win2k etc.)
Ein "MyButton: KeyDown" ist dann, wenn das Element MyButton (bei dir ein Button) den Fokus hat und der Anwender der Applikation eine Taste drückt. Ein Button hat dann den Fokus, wenn der schwarze Rahmen um den Button erscheint - ohne Fokus, also ohne schwarzen Rahmen auch keine Key-Event.
Hinweis:
"KeyDown" in Verbindung mit Events bedeutet nicht "Key ist down", sondern "Key wird gerade down, ändert sich also von up nach down".

Drittens:
Willst du reagieren auf den Zustand des Buttons - "gedrückt ist" oder "losgelassen ist" - dann kannst du einen ganz normalen IF-Case verwenden. Nur wenn du eine Zustandsänderung auswerten willst - "gedrückt wird" ... - dann ist eine Event-Struktur sinnvoll.

Zitat:und applikation Key Up (wenn der Button nicht gedrückt ist).
Auch das sind wieder zwei Paar Stiefel: KeyUp bedeutet das Loslassen einer Taste. Ein Button würde also von gedrückt nach nicht gedrückt gehen. Diese Flanke (!) löst dann einen Event aus.
Die Ausdrucksweise "wenn der Button nicht gedrückt ist" spiegelt nicht die Funktionsweise von "KeyUp" wider.

Zitat:Somit kann ich mit Button true in das Event 0 und mit Button false in das Event 1 oder nicht
Alleine mit "Button ist gleich true" (das ist ein Vergleich! "Button ergibt sich aus true" ist eine Wertzuweisung) kann man keinen Event auslösen. Ein Event wird nur ausgelöst durch "Button geht von false nach true" (oder umgekehrt, etc. etc.)


Events werden auslöst, wenn am FP ein Bedienelement vom Anwender betätigt - gedrückt oder losgelassen - wird. Um ein Event per BD auszulösen, musst du das Property Wert(signalisierend) beschreiben.



Hier noch was zu deiner Eingangsfrage"Frontpanel SubVI2 öffnen per ButtonKlick aus einem Frontpanel SubVI1 heraus, was selbst durch einen ButtonClick geöffnet wurde.":

Das ist etwas komplizierter (ohne jetzt die VIs von Y-P betrachtet zu haben): Wenn du in SubVI1 einen Button drücken willst, so muss dieses SubVI SUBVI1 auch laufen. Nur weil das FP des SubVIs SUBVI1 zu sehen ist, heißt das noch lange nicht, dass das SUBVI1 auch läuft. Du musst also deine Programmierung so gestalten, dass SUBVI1 kontinuierlich läuft.
Ah

Ok jetzt habe ich es verstanden thx. Oh man LabVIEW kostet einem echt NervenSmile. Dann werde ich das ganze Spiel mal mit If structuren machen.
Das mit dem SubVi1 startet SubVi2 haben ich auch bemerkt das dies nicht geht. SubVi1 läuft aber wenn ich dann aus diesem Subvi das SubVi2 starten will hängt sich alles auf.
' schrieb:Dann werde ich das ganze Spiel mal mit If structuren machen.
Das wäre in deinem Falle wohl auch so möglich.
Mit dieser Methode läuft SUBVI1 ja "kontinuierlich" - und du kannst den Button, der sich in SUBVI1 befindet und zum Starten von SUBVI2 dient, auswerten.

Zitat:SubVi1 läuft, aber wenn ich dann aus diesem Subvi das SubVi2 starten will, hängt sich alles auf.
Ich vermute mal, dass das am Aufbau des SubVI2 liegt. Möglicherweise ist hier eine Event-Struktur, die praktisch die komplette Applikation anhält (Datenfluß !)
Seiten: 1 2
Referenz-URLs