Zamykanie VI
Zamykanie VI
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?
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?
-
- Administrator
- Posty: 1315
- Rejestracja: 30 lip 2003 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Ruda Śląska
- Kontakt:
Do traya
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
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
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
Ż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
- rafal
- Posty: 39
- Rejestracja: 12 lip 2004 00:00
- Wersja środowiska: LabVIEW 2010
- Lokalizacja: Grudziądz
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
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
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
> 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
[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
"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
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
>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
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.
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.
[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:
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]
-
- Administrator
- Posty: 1315
- Rejestracja: 30 lip 2003 00:00
- Wersja środowiska: LabVIEW 2015
- Lokalizacja: Ruda Śląska
- Kontakt:
Wstawianie obrazka
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.

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.
Re: Wstawianie obrazka
[quote="bogdani"]
PS. mikrobi pozwoliłem sobie nieco poprawić twój post, mam nadzieję, że się nie gniewasz.
[/quote]
:lol:
PS. mikrobi pozwoliłem sobie nieco poprawić twój post, mam nadzieję, że się nie gniewasz.

:lol: