Hallo,
ich rufe aus dem Hauptprogramm ein SubVi auf und verschiebe
es in Abhängigkeit von dem Hauptprogramm (Caller),
es soll immer x Pixel unter dem Main Vi sein.
Das ganze funktioniert,
jedoch sieht man beim öffnen des SubVis den Vorgang des Verschiebens.
Wie wird es richtig gemacht, bzw. wie kann ich das verhindern?
Vielen dank!
(20.01.2012 07:57 )prinz3nroll3 schrieb: [ -> ]Wie wird es richtig gemacht, bzw. wie kann ich das verhindern?
Hallo,
verhindern kann man das Ganze z.B., in dem man die Frontpanel Akutalisierung verzögert bis das 'Verschieben' beendet ist. (Stichwort:
Defer Panel Updates)
Ansonsten das SubVi schon vorher richtig ausrichten, bevor es geladen wird.
Beste Grüße,
NWO
Hallo prinz3nroll3,
Ich denke das geht über eine Referenz auf das SubVI und einen Eigenschaftsknoten. Hast du die Position gesetzt, kannst du danach das Frontpanel des VIs öffnen.
Gruß
(20.01.2012 09:09 )erik.brenncke schrieb: [ -> ]Hallo prinz3nroll3,
Ich denke das geht über eine Referenz auf das SubVI und einen Eigenschaftsknoten. Hast du die Position gesetzt, kannst du danach das Frontpanel des VIs öffnen.
Gruß
Hallo,
vielen dank!
Auch das hört sich logisch und gut an,
aber leider bin ich ein blutiger Anfänger.
Wie bekomme ich denn eine Referenz auf das SubVi?
Vielen dank
Gruß
(20.01.2012 08:24 )prinz3nroll3 schrieb: [ -> ] (20.01.2012 08:05 )NWOmason schrieb: [ -> ]Ansonsten das SubVi schon vorher richtig ausrichten, bevor es geladen wird.
Hallo,
das hört sich gut an,
wie mache ich das?
Du kannst z.B. die Element des SubVIs händisch oder programmatisch am 'Nullpunkt' ausrichten:
[
attachment=38246]
Dann kannst du noch zur Sicherheit die die 'Origin'-ProbertyNode des SubVIs auf den 'Nullpunkt' setzen:
[
attachment=38247]
(20.01.2012 09:32 )prinz3nroll3 schrieb: [ -> ]Wie bekomme ich denn eine Referenz auf das SubVi?
Die Wahl fällt zwischen statischen und dynamischen Referenzen. Z.B über eine statische Referenz:
[
attachment=38248]
(20.01.2012 09:32 )prinz3nroll3 schrieb: [ -> ]aber leider bin ich ein blutiger Anfänger.
Dann würde ich zum Durcharbeiten folgender Tutorials raten:
Getting Started with NI LabVIEW Student Training
http://zone.ni.com/devzone/cda/tut/p/id/7466
Introduction to NI LabVIEW - Learn LabVIEW Basics
http://www.ni.com/gettingstarted/labviewbasics/
Beste Grüße,
NWO
Hallo,
vielen dank die tutorials werde ich mir anschauen.
ich habe jetzt das hier gebaut:
[
attachment=38256]
Allerdings muss ich dann in dem subvi (das positioniert werden soll) folgendes einstellen:
vi->properties->windows run time position unchanged....
und das vi (set position) muss immer vorher aufgerufen werden.
Gibt es eine andere bessere Lösung?
Wie macht ihr so etwas?
Vielen dank
(20.01.2012 12:05 )prinz3nroll3 schrieb: [ -> ]Allerdings muss ich dann in dem subvi (das positioniert werden soll) folgendes einstellen:
vi->properties->windows run time position unchanged....
und das vi (set position) muss immer vorher aufgerufen werden.
Gibt es eine andere bessere Lösung?
Wie macht ihr so etwas?
So in der Art mache ich es auch:
- SubVI: VI-Properties einmalig einstellen.
- SubVI: Elemente händisch an 0:0 ausrichten (falls statisch) oder programmatisch bei der Initalisierung (falls dynamisch).
- SubVI: Bei der Initalisierung Pane:Origin auf 0:0 setzen, somit wird beim Aufruf die Origin gleich richtig gesetzt.
- MainVI: SubVI per Referenz ins Subpanel laden.
Fertig
Beste Grüße,
NWO
Es wurde hier kürzlich ein schönes Beispiel gepostet, der Name ist (für Googeln) "QSM PC EXAMPLE.llb". (QSM = Queued State Machine).
Dieses Programm stammt von einem Programmierer der ersten Garnitur, daraus kann man viel lernen.
Beim Aufruf werden Haupt-VI und 2 Sub-VIs zueinander ausgerichtet. Dafür gibt es in der llb das SubVI "FP Position und Size" .
Meines Erachtens kannst Du alles was Du brauchst aus diesem SubVI lernen, oder Du verwendest es direkt.
(und nicht Vers. 2!) [
attachment=38263]