Страница 1 из 1

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

Добавлено: 26 мар 2018, 10:03
Elen
Здравствуйте.

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

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

Добавлено: 26 мар 2018, 10:46
Artem.spb
так и должно быть потому что вы неправильно делаете :)
пока диалоговое окно (функция) не завешит работу, программа не пойдёт дальше.
Для параллельной работы нужно вынести все окна за пределы основного цикла, и по очередям/событиям отправлять им команды на открытие.
Вторй вариант - асинхронный вызов по ссылке.

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

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

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

Можно по-разному делать. Либо динамически вызывать :vi: , либо делать машину состояний, в которой вызывать дополнительные окна (не очень подходит, если окон надо больше двух)

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

Добавлено: 26 мар 2018, 11:48
Elen
Спасибо.

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

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

Добавлено: 26 мар 2018, 11:55
Artem.spb
Elen писал(а):Спасибо.

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