Многооконное приложение

Простейшие вопросы в области инженерной разработки

Многооконное приложение

Postby Elen on 26 Mar 2018, 10:03

Здравствуйте.

Подскажите, пожалуйста, как решить следующую проблему. Реализую многооконное приложение. На главном окне как обычно название, основные кнопки, дата и текущее время. Так вот, когда я запускаю другое окно, то на главном окне зависает отображение текущего времени. это так и должно быть или я что-то неправильно делаю? LV у меня 2013. Скрин запуска другого окна из главного:
Скрин.png


Прошу подсказать.
Elen
beginner
beginner
 
Posts: 40
Joined: 15 Oct 2014, 07:27
LabVIEW Version: 2013
Karma: 0

Re: Многооконное приложение

Postby Artem.spb on 26 Mar 2018, 10:46

так и должно быть потому что вы неправильно делаете :)
пока диалоговое окно (функция) не завешит работу, программа не пойдёт дальше.
Для параллельной работы нужно вынести все окна за пределы основного цикла, и по очередям/событиям отправлять им команды на открытие.
Вторй вариант - асинхронный вызов по ссылке.
Artem.spb
expert
expert
 
Posts: 1273
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 222
CLD hardware I/O VIP freelance

Re: Многооконное приложение

Postby AlexanderKonoval on 26 Mar 2018, 10:53

ну, это вы так сделали. :vi: верхнего уровня ждёт, пока :vi: , вызванный вами в ивент-структуре, закончит свою работу. Цикл стоит.

Если вам надо, чтобы два окна работали одновременно, вам надо устраивать работу параллельных циклов.

Можно по-разному делать. Либо динамически вызывать :vi: , либо делать машину состояний, в которой вызывать дополнительные окна (не очень подходит, если окон надо больше двух)
колдооооовствооооо! (С)
AlexanderKonoval
developer
developer
 
Posts: 254
Joined: 03 Jan 2014, 19:37
Location: Украина, Киев
LabVIEW Version: 2016
Karma: 53

Re: Многооконное приложение

Postby Elen on 26 Mar 2018, 11:48

Спасибо.

Я решила поступить проще - вынесла в параллельный цикл вывод текущего времени, потому что пока работает вторичное окно, в главном ничего отслеживать не надо. Все получилось.
Elen
beginner
beginner
 
Posts: 40
Joined: 15 Oct 2014, 07:27
LabVIEW Version: 2013
Karma: 0

Re: Многооконное приложение

Postby Artem.spb on 26 Mar 2018, 11:55

Elen wrote:Спасибо.

Я решила поступить проще - вынесла в параллельный цикл вывод текущего времени, потому что пока работает вторичное окно, в главном ничего отслеживать не надо. Все получилось.


Это один из вариантов. Но если вы захотите запараллелить больше окон с возможностью работать одновременно во всех, то придётся менять архитектуру.
Artem.spb
expert
expert
 
Posts: 1273
Joined: 31 Jul 2011, 23:05
Medals: 2
Activity (1) Автор (1)
LabVIEW Version: 12,14,15
Karma: 222
CLD hardware I/O VIP freelance


Return to Для чайников

Who is online

Users browsing this forum: Bing [Bot] and 14 guests

cron