Zamykanie VI

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
Gość
Posty: 656
Rejestracja: 10 lis 2003 00:00

Zamykanie VI

Post autor: Gość »

Witam.
Mam vi który pełni funkcję menu głównego. Z niego odpalam inne vi. Pytanie: jak najprościej zamknąć (a nie tylko ukryć FP) menu główne kiedy uruchomię już inny program? Oczywiście kiedy zamknę tenże program uruchamia się spowrotem menu główne?
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

Do traya

Post autor: bogdani »

Witam
Możesz zamiast zamykać główny program zminimalizować go do traya (sposób dość szeroko tu opisywany). Jak zamkniesz uruchomiony wcześniej program to program główny (który siedzi w trayu) możesz zamknąć poprzez Quit LabVIEW.
Wiem że to nie dokładnie to o co pytałeś, ale to też jestr jakieś rozwiązanie.
bogdani
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
PMaj
Posty: 231
Rejestracja: 04 sty 2004 00:00

Post autor: PMaj »

Witam

Żeczywiście - nie znalazłem opcji zamykania VI'a innego niż ten opisany przez bogdaniego ... Nasuwa mi się jednak takie rozwiązanie 'na około': Ukrycie panelu frontowego powoduje to, że programu i tak nie ma w pasku zadań - jest to jakieś rozwiązanie, bo jeżeli dotego dołożymy STOP z menu Application Control, który działa jak zatrzymanie działania programu poprzez Abort Execution, to otrzymamy niepracujący i niewidoczny VI, który teraz można uaktywnić z innego VI'a, tzn. uruchomić i uczynić widocznym ...

Nie powinno się stosować Abort Execution, ALE skoro i tak w planach jest zamknięcie aplikacji to myślę, iż byłoby ok.

Nie jest to prawdopodobnie najlepszy sposób, więc również czekam na leprze pomysły

Pozdrawiam
Gość
Posty: 656
Rejestracja: 10 lis 2003 00:00

Post autor: Gość »

Witam
Dzięki za sugestie.
Czekam na dalsze pomysły!

Pozdrawiam
Awatar użytkownika
rafal
Posty: 39
Rejestracja: 12 lip 2004 00:00
Wersja środowiska: LabVIEW 2010
Lokalizacja: Grudziądz

Post autor: rafal »

Witam

Mam ten sam problem. I gdyby nie to, że pracuję na wersji 6i miałbym to z głowy.
Rozwiązałem to następująco:
W menu głównym mam przyciski uruchamiające poszczególne aplikacje. Wciśnięcie przycisku (uruchamiającego daną aplikację) powoduje uruchomienie 3 sekwencji. W 1-szej minimalizuje mi się menu główne (tzn. na razie się ukrywa, bo nie wiem jak w 6i je zminimalizować), w 2-giej uruchamia się dany podprogram. W opcjach podprogramu VI Properties>>Customize Window Apperance zaznaczyłem m.in. 3 opcje: Window is Modal (blokuje inne okna LabVIEW), Show Front Panel When Called (pokazuje panel wywoływanego podprogramu) oraz Close Afterwards if oryginal Closed (powraca do menu głównego po zakończeniu działania podprogramu). W 3-ciej sekwencji anulowana zostaje minimalizacja panelu menu głównego. W trakcie działania podprogramu program z menu głównym (zawierającym te 3 sekwencje) zatrzymuje się na drugiej sekwencji, dopóki nie zakończy się działanie podprogramu.
Nie wiem czy to jest to, o co Ci chodziło, ale może się przyda.
Jeszcze jedno: w 1-szej sekwencji nie mam obiektu Close LV Object Reference - jest on dopiero w 3-ciej.

Pozdrawiam
Gość
Posty: 656
Rejestracja: 10 lis 2003 00:00

Post autor: Gość »

Witam.
> Rafal
Dzięki za pomysł ale (jeśli dobrze cię zrozumiałem) ja właśnie nie chcę ukrywać Panelu frontowego ale zatrzymać i zamknąć menu główne po odpaleniu danej aplikacji z niego (vi menu głównego pomimo ukrycia panelu frontowego nadal działa i dlatego chcę je zamknąć).
Mam nadzieję, że poprawnie to wyjaśniłem.

PS. Ja również pracuję w 6i.

Pozdrawiam
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Post autor: Mikrobi »

[quote="Kodek"]Witam. > Rafal Dzięki za pomysł ale (jeśli dobrze cię zrozumiałem) ja właśnie nie chcę ukrywać Panelu frontowego ale zatrzymać i zamknąć menu główne po odpaleniu danej aplikacji z niego (vi menu głównego pomimo ukrycia panelu frontowego nadal działa i dlatego chcę je zamknąć). [/quote] Pytanie następujące: czy VI'je na które składa się twój program, czyli menu i uruchamiane przez nie podprogramy pracują w trybie samodzielnym (*.exe) czy w środowisku? Jeśli to praca samodzielna, to rozwiązaniem jest bloczek 'Quit LabVIEW' i każda część aplikacji wywoływana z menu jako samodzielny program (exe) - czyli metody oferowane przez przez VIServer i łańcuch:
"Open VI Reference", "Property Node", "Close LV Object Reference".
Bardziej zaawansowane opcje, czyli obsługa (np. minimalizowanie) okien lub "Abort VI", pojawiły się dopiero w LabVIEW7.0 zatem trudno znaleźć rozwiązanie dla wersji 6i.
Być może jednak można zoptymalizować pracę VI'a z menu i zostawić go w tle z zamknietym panelem? W zasadzie VI , który obsługuje głównie (jak przypuszczam) wybór z menu może zostać wykonany w sposób, który nie powinien zbytnio absorbować czasu systemu operacyjnego. Jeśli pracuje w petli WHILE to byc może rozwiązaniem będzie umieszczenie bloczka 'Wait Until Next' z opóźnieniem nawet do 300ms. Użytkownik nic nie zauważy, a system będzie miał wiele czasu 'pomiędzy'.
pozdrawiam Mikrobi
Gość
Posty: 656
Rejestracja: 10 lis 2003 00:00

Post autor: Gość »

Witam.
>Mikrobi
Pracują w środowisku. VI menu faktycznie obsługuje głównie wybór innych VI i nie jest rozbudowane. Wydawało mi się mało eleganckie pozostawienie niepotrzebnie pracującego VI'a menu a na dodatek mam słabego PC-ta (PI 200MHz). Ale najprawdopodobniej zrobię jak sugerujesz.
Dzięki!

Pozdrawiam
Awatar użytkownika
rumcajs
Posty: 209
Rejestracja: 17 paź 2004 00:00
Lokalizacja: Aktualnie TRW

Post autor: rumcajs »

Panowie, troszkę mieszacie pojęcia. Zminimalizować (czyli zwinąć na pasek stanu) lub Ukryć (co też nie przerywa jej wykonywania) okno aplikacji można: W wersji od 7.0 (być może już również 6.1) wzwyż - bezpośrednio za po mocą metod i właściwości dostępnych przez Open VI Reference. W wersjach od 5.0 do 6.0 tylko z wykorzystaniem Windows API - bibliotekę można znaleźć na stronach NI.
Zamknąć (co wiąże się z zatrzymaniem jej wykonywania) napewno we wszystkich wersjach powyżej 5.0 wykorzystując oczywiście Metody i Właściwości Open VI Reference.
Postaram się dołączyć obrazki (robię to 1 raz): Tak otwieramy Panel Frontowy: [img]http://www.labview.pl/images/forum/rumcajs01.png[/img] Jeżeli we właściwościach otwieranego vi mamy aktywne Run After Open to nie trzeba metody Run VI A tak zamykamy: [img]http://www.labview.pl/images/forum/rumcajs02.png[/img] I tutaj też nie potrzeba teoretycznie metody Abort VI gdyż zgodnie z Knowledge Base zamkniecie Front Panela(u) powoduje zatrzymanie jego egzekucji. Jest jeszcze kilka niuansów, ale może na później. Pozdrawiam. Rumcajs.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Post autor: Mikrobi »

[quote="rumcajs"] Chyba mi się nie udało z tymi obrazkami. Moze mi kotoś pomoże.[/quote]
Jeśli masz miejsce na swoim koncie na serwerze www to stwórz w katalogu public_html katalog na przykład 'labview_pl'. Do tego katalogu przenieś przez ftp diagramy a potem wejdz na swoją stronę, dopisując do adresu nazwę katalogu. Na moim serwerze wygląda to nastepująco: /public_html/labview_pl : http://layer.uci.agh.edu.pl/~mikrobi/labview_pl/
Teraz wystarczy odnaleźć konkretny obrazek np.: paletaAplCtrl.png i kliknąć na nim, potem skopiować pełny adres z http:
http://layer.uci.agh.edu.pl/~mikrobi/la ... plCtrl.png
Pisząc post w miejscu w którym chcesz w stawić obrazek klikasz na przycisk "Img", Ctrl+V (wstawiasz adres) i znowu klikasz na przycisk który teraz ma postać 'Img*'. To zamyka znaczniki dla programu obsługującego forum.
Pełny zapis lokalizacji obrazka powinien wyglądać następująco:

Kod: Zaznacz cały

[img]http://layer.uci.agh.edu.pl/~mikrobi/labview_pl/paletaAplCtrl.png[/img]
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

Wstawianie obrazka

Post autor: bogdani »

Witam
Dziękuję mikrobi za wyjaśnienie, ja tylko dodam, iż jeśli nie posiadacie własnego konta www, które można linkować (czyli ściągać dane przez inne serwery i odwołania) to polecam metodę opisaną tutaj na forum: http://www.labview.pl/modules.php?name= ... &p=423#423
Wystarczyło trochę poszukać.
W razie czego proszę pisać na PM lub wysłać mailem to pomogę.
bogdani
PS. mikrobi pozwoliłem sobie nieco poprawić twój post, mam nadzieję, że się nie gniewasz.
:)
Ostatnio zmieniony 20 paź 2004 21:32 przez bogdani, łącznie zmieniany 1 raz.
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Wstawianie obrazka

Post autor: Mikrobi »

[quote="bogdani"]
PS. mikrobi pozwoliłem sobie nieco poprawić twój post, mam nadzieję, że się nie gniewasz.
:)[/quote]
:lol:
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
PMaj
Posty: 231
Rejestracja: 04 sty 2004 00:00

Post autor: PMaj »

Witaj rumcajs ... czekamy na te screeny - akurat zależy mi na ich obejrzeniu gdzyż nie wiem czy to jest coś innego niż to co obecnie zastosowałem więc jeśli możesz to spróbuj jeszcze raz - jest opis przy Twoim ostatnim poście dodany przez bogdaniego jak sie nie mylę :)
Pozdrawiam
ODPOWIEDZ