Hallo zusammen,
ich hab hier mal ein kleines Beispiel gemacht, "AboutCall.vi" ruft das SubVI "AboutTest.vi" auf.
Warum wird eine Änderung von Parametern im SubVI am InvokeNode erst beim zweiten Aufruf wirksam?
Vorgehensweise:
-Parameter im SubVI ändern, VI speichern und schließen
-HauptVI starten und SubVI per Button aufrufen
-Ergebnis?
-SubVI beenden
-SubVI nochmal aufrufen
-Anderes Ergebnis?!
Warum ist das so? Ist da im Hintergrund ein Schieberegister?
Gruß
Achim
[
attachment=22214][
attachment=22215]
' schrieb:Ist da im Hintergrund ein Schieberegister?
Jein.
An einem geöffneten Fenster kann man keine Größe mehr einstellen - zumindest nicht mit diesem Property. Also: FP-Schließen - Größe manipulieren - FP-Öffnen. Die geänderte Einstellung wird erst beim nächsten FP-Öffnen aktiv. Das sieht bei Verwendung als SubVI dann so aus, als sei hier ein Schieberegister.
Nachtrag:
Ich verwende zum Einstellen der Größe den entsprechenden Eigenschaftsknoten, nicht den Methodenknoten.
Hi,
vielen Dank für die Info!
Ich mach's jetzt so, das läuft schön geschmeidig ab!
[
attachment=22232][
attachment=22231]
Wie der Name der VIs schon nahelegt, verwende ich das, um bei meinen Applikationen ein "Info-Fenster" einzublenden.
Bisher hab ich das auch immer mit dem Eigenschaftsknoten "PanelBounds" gemacht. D.h. erst Größe einstellen und dann zentrieren. Leider muss man da aber vier Parameter (Left-Right-Top-Bottom) angeben, und das FrontPanel wird dann auch erst mal dahin gezeichnet. Dann wirds aber sofort zentriert, was sich als unschönes Ruckeln des Bildes auswirkt, weil das FP dann vom Ursprungsort verschoben wird. Auch "DeferPanelUpdates" bringt hier nichts. Das könnte man umgehen, indem man die Ränder sofort richtig einstellt, aber ich finde das ein bisschen umständlich. Außerdem reagiert das VI nicht auf die Eigenschaft "Monitor"...
[
attachment=22233]
Alternativ (auch schon gemacht) kann man sich die Bildschirmgröße ausgeben lassen und die vier Parameter dann jeweils von der Mitte des Bildschirms berechnen und als PanelBounds angeben. Das funktioniert genauso gut wie mit dem InvokeNode, aber auch hier reagiert "Monitor" nicht!
[
attachment=22236]
Vieleicht haste noch nen Tip?!
Gruß
Achim
' schrieb:Vieleicht haste noch nen Tip?!
Naja, keinen richtig Tipp. Aber ein SubVI, das sich automatisch immer an eine bestimmte Position setzt. Die Position ist ein Boolscher Button (RelPos) auf einem FP (innerhalb eines Subpanels).
1