łączenie aplikacji

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Prorok
Posty: 51
Rejestracja: 08 mar 2011 15:33
Wersja środowiska: LabVIEW 8.6

łączenie aplikacji

Post autor: Prorok »

Witam,

mam program który skalda się z panelu głównego oraz 4 podprogramów (osobne vi) które są wywoływane z tegoż panelu z wykorzystaniem Run Time Menu. Jak to zrobić, aby minimalizując okno głównego panelu minimalizować również wywołane podprogramy ? Na razie mam tak, że minimalizując główny panel, podprogramy pozostają na ekranie.


pozdro
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

łączenie aplikacji

Post autor: Pitol »

Nie wiem jak wygląda u Ciebie architektura głównego programu, ale jeśli możesz to skorzystaj ze struktury Event i wyłap zdarzenie minimalizowania programu głównego. Jak to Ci się uda, to już w prosty sposób (mając referencje do pozostałych programów) możesz je również minimalizować. To samo można zrobić z maksymalizacją.

Nie zamieszczam przykładu, bo chcę żebyś sam popróbował to zrobić. Jak będziesz miał problemy to pisz, będziemy więcej wyjaśniać.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Prorok
Posty: 51
Rejestracja: 08 mar 2011 15:33
Wersja środowiska: LabVIEW 8.6

Re: łączenie aplikacji

Post autor: Prorok »

Witam,

tak przegladam ta strukture Event i jedyne co moglo by się nadac to chyba Panel Resize. Ale nie wiem czy dobrze kombinuję.

pozdro
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

łączenie aplikacji

Post autor: Pitol »

Dobrze kombinujesz. W zdarzeniu Panel Resize masz dostępne kilka własności, np. Act. Zwraca on informację o aktualnym stanie okna (Minimized, Maximized, Resized).

Jeśli zminimalizujesz okno wykona się to zdarzenie, a własność Act zwróci wartość Minimized. Dalej to już z górki :)
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Prorok
Posty: 51
Rejestracja: 08 mar 2011 15:33
Wersja środowiska: LabVIEW 8.6

Re: łączenie aplikacji

Post autor: Prorok »

Faktycznie zwraca co trzeba, ale z tej "górki" to już nie za bardzo wiem jak zjechać.

pozdro
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

łączenie aplikacji

Post autor: Pitol »

Gdzie utknąłeś?

Powiedzmy, że Twój program wychwycił już zdarzenie "Panel Resize". Z węzła Act odczytujesz, że nastąpiła akcja "Minimized".
Teraz musisz sprawić, żeby pozostałe Twoje okienka również się zminimalizowały.
Jak?
Musisz mieć dostęp do referencji do tych okienek. Następnie za pomocą węzła własności (Property Node) ustawiasz stan panelu.
Poszperaj za odpowiednią własnością. Jak polegniesz to daj znać, to podpowiem ;)

Najprościej będzie poćwiczyć i stworzyć dwa VI. Pierwszy np. okno.vi będzie cały czas uruchomiony. Drugim np. main.vi będzie za pomocą referencji zmieniał stan tego pierwszego (wg przepisu opisanego wyżej). Jak Ci sie to uda zrobić to potem to sobie wrzuć do swojej aplikacji.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Prorok
Posty: 51
Rejestracja: 08 mar 2011 15:33
Wersja środowiska: LabVIEW 8.6

Re: łączenie aplikacji

Post autor: Prorok »

Witam,

coś tak kombinowałem, ale nie działa.


pozdro
Załączniki
min.JPG
Awatar użytkownika
Góras
Posty: 88
Rejestracja: 13 sie 2012 10:15
Wersja środowiska: LabVIEW 2012

łączenie aplikacji

Post autor: Góras »

Przepraszam, że się wtrącam w dyskusję, ale zamiast Invoke Node użyj Property Node - Front Panel Window -> State :)
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

łączenie aplikacji

Post autor: Pitol »

No prawie Ci się udało.
Musisz skorzystać z własności Front Panel Window -> State. I tyle ;)

Powodzenia.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Prorok
Posty: 51
Rejestracja: 08 mar 2011 15:33
Wersja środowiska: LabVIEW 8.6

Re: łączenie aplikacji

Post autor: Prorok »

No prawie mi się udało ;), dzięki.
Prorok
Posty: 51
Rejestracja: 08 mar 2011 15:33
Wersja środowiska: LabVIEW 8.6

Re: łączenie aplikacji

Post autor: Prorok »

Witam,

mam jeszcze do tego pytanie. A co zrobić jak chcę 4 okienka zminimalizować na raz ? Powielić te funkcje ?

pozdro
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

łączenie aplikacji

Post autor: Pitol »

Wrzuć ścieżki plików (bo w taki sposób widzę, że wyciągasz referencje) do tablicy i funkcjonalność minimalizacji wrzuć w pętlę FOR. Po co kopiować skoro mamy pętle ;)
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Prorok
Posty: 51
Rejestracja: 08 mar 2011 15:33
Wersja środowiska: LabVIEW 8.6

Re: łączenie aplikacji

Post autor: Prorok »

Witam,

mam następne pytanie, nie wiem czy to nie powinien być nowy temat (Moderator zdecyduje) ale to się wszystko łączy. Mianowicie jak zamknąć jednocześnie te wszystkie programy z mojego Panelu głównego ? Najlepiej by było gdyby to się dało zrobić "krzyżykiem" z Panelu.

pozdro
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

łączenie aplikacji

Post autor: Pitol »

Identycznie... Tylko zdarzenie inne (Panel Close). A w zdarzeniu zamiast FP.State skorzystaj z metody FP.Close.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Prorok
Posty: 51
Rejestracja: 08 mar 2011 15:33
Wersja środowiska: LabVIEW 8.6

Re: łączenie aplikacji

Post autor: Prorok »

Witam,

no ale "krzyżykiem" windowsowym chyba nie bardzo to można zrobić ?

pozdro
ODPOWIEDZ