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!
ich beende mein Programm über einen Exit-Button. Dann kann ich noch etwas abspeichern und eine DLL entladen. Wie kann ich das machen, wenn das Programm über den Schließen-Button rechts oben geschlossen wird?
Ich weiß ich könnte den Schließen-Button über die VI-Eigenschaften (Schließen des Fensters möglich) deaktivieren. Aber diese Lösung ist nicht schön.
RE: Schließen eines Programms durch Schließen-Button
Du kannst diese Ereignis (<Application -> Application Instance Close? oder <This Vi> -> Panel Close?) in der Event-Strukur abfragen und dann ensprechend reagieren.
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!
RE: Schließen eines Programms durch Schließen-Button
Wie meist üblich, speicherts Du beim Schließen mit dem Exit-Button noch etwas ab, schließt offene Files etc. Das sollte beim Schließen mit dem Schließkästchen genau so geschehen, und deshalb mache ich es so:
Die Betätigung löst, wie schon vorgeschlagen, ein Ereignis aus. Dort lege ich fest "Schließen des VIs verwerfen" - das VI wird also zunächst nicht geschlossen. Statt dessen wird dort mit einem Eigenschaftknoten "Wert signalisierend" das weitere Ereignis "Exit Button Wertänderung" ausgelöst. Damit läuft dann alles Weitere exakt so ab, als wenn der Exit-Button betätigt worden wäre. (oder hat jemand eine bessere Idee?)
RE: Schließen eines Programms durch Schließen-Button
(02.03.2011 18:45 )Lucki schrieb: ... Exit-Button betätigt worden wäre. (oder hat jemand eine bessere Idee?)
Bessere Idee vielleicht nicht, eher eine andere.
Ein Exit-Button sieht finde ich häufig nicht wirklich Windows-like aus (und versteckt sieht's dann für'n Programmier wie ein Q'n'D-Hack aus). Meist soll beim Schließen ja an eine zentrale Stelle (Main-QDMH od. eben andere Architektur) eine allgemeine Deinit/Quit-Message geschickt werden. Das läßt sich auch in ein Callback-VI packen, daß an das Close-Event registriert ist.
RE: Schließen eines Programms durch Schließen-Button
(02.03.2011 19:38 )schrotti schrieb: OT: Ist der QDMH ein Quick and Dirty Main Handler?
OT: Schöne Idee eigentlich!
QDMH steht für Queue Driven Message Handler, das ist ein (das) zentrale Pattern im LV Advanced Architectures Kurs seit der Umstellung von LV Advanced I.
Das ist eine im Endeffekt ein Queued Message Handler (QMH), nur das mit der "neuen" Nomenklatur wohl der Unterschied zu anderen QMHs basierend auf FGV/SR (z.b. JKI State Machine) betont wird. Siehe auch die AMC Library von NI, das ist damit dann auch ein QDMH.
RE: Schließen eines Programms durch Schließen-Button
(02.03.2011 20:49 )macmarvin schrieb: Handler, das ist ein (das) zentrale Pattern im LV Advanced Architectures Kurs seit der Umstellung von LV Advanced I.
Du bist Vollprofi, ich bin höchstesn ein begabter Amateur, und dementsprechend verhalten sich die beiden Lösungsvorschläge. Damit ich/wir auch etwas von der Lösung verstehen, könntest Du ein Beispiel aus der Labview-Hilfe oder sonst einen Link nennen, wo man das näher studieren kann?
RE: Schließen eines Programms durch Schließen-Button
Der Absatz "Queued Message Handler Design Pattern" auf der AMC Lib Seite gibt einen recht guten Überblick bzw. die Links unter References sind auch brauchbar. Je nachdem ob man halt ein UI braucht oder nicht, kann die Schleife mit dem Eventhandler weg.