Кнопки закрыть, развернуть, свернуть

Обсуждение, связанное с разработкой ПО верхнего уровня
Ответить
Аватара пользователя
FireFly

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

Кнопки закрыть, развернуть, свернуть

Сообщение FireFly »

Как можно перехватить нажатия кнопок закрыть, развернуть, свернуть стандартного виндовского окна в котором работает программа. Т.е. я хочу чтобы ВМЕСТО стандартной функции при нажатии одной из этих кнопок в программе выполнялось что-то моё. Конечно есть вариант полностью убрать шапку окна в VI Properties, и нарисовать своё, и поместить свои кнопки внешне похожие, которые будут контролами в моей программе... Но жутко не хочится всё рисовать самому, стандартный виндовский вид меня устраивает, и не охото возиться с реализацией перетаскивания окна при хватании за заголовок, хотя способы конечно есть и не очень и сложные...
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Кнопки закрыть, развернуть, свернуть.

Сообщение Eugen Graf »

В ивент структуре можно перехватить с помощью Discard.
Аватара пользователя
FireFly

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

Re: Кнопки закрыть, развернуть, свернуть.

Сообщение FireFly »

Для начала как можно зафиксировать их нажатие? :dntknw:
Опыта работы с Event структурой почти нет...
И что за Discard?
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Аватара пользователя
Konstantin Sumenko

Activity Bronze
expert
expert
Сообщения: 1439
Зарегистрирован: 17 июл 2008, 12:20
Награды: 2
Версия LabVIEW: 2010
Откуда: Moscow
Поблагодарили: 1 раз
Контактная информация:

Re: Кнопки закрыть, развернуть, свернуть.

Сообщение Konstantin Sumenko »

Discard это отмена действия, которое выполнится по дефолту (например, при нажатии креста- выход из программы).
Аватара пользователя
FireFly

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

Re: Кнопки закрыть, развернуть, свернуть.

Сообщение FireFly »

Вот так вроде можно перехватить закрытие... :dntknw:
Свернуть и развернуть найти не могу... :dntknw:
Вложения
S1.PNG
S1.PNG (7.6 КБ) 7243 просмотра
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Кнопки закрыть, развернуть, свернуть.

Сообщение Eugen Graf »

Panel Resize
Confocal
assistant
assistant
Сообщения: 104
Зарегистрирован: 15 авг 2008, 11:55
Версия LabVIEW: 8.5
Откуда: Россия, Московская область
Контактная информация:

Re: Кнопки закрыть, развернуть, свернуть.

Сообщение Confocal »

А таким способом можно крестом окна просто закрыть прибор вместо использования кнопок?
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Кнопки закрыть, развернуть, свернуть.

Сообщение Eugen Graf »

не понял :think:
Confocal
assistant
assistant
Сообщения: 104
Зарегистрирован: 15 авг 2008, 11:55
Версия LabVIEW: 8.5
Откуда: Россия, Московская область
Контактная информация:

Re: Кнопки закрыть, развернуть, свернуть.

Сообщение Confocal »

в рантайме прибора, чтобы по нажатию креста закрылись циклы и т.п.? а не кнопкой stop или exit.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Кнопки закрыть, развернуть, свернуть.

Сообщение Eugen Graf »

Да, конечно. Так же ловим ивент и посылаем сообщение в виде User Event, Queue, Occurence, Notifier или даже через локальную или глобальную переменную во все рабочие циклы программы.
Confocal
assistant
assistant
Сообщения: 104
Зарегистрирован: 15 авг 2008, 11:55
Версия LabVIEW: 8.5
Откуда: Россия, Московская область
Контактная информация:

Re: Кнопки закрыть, развернуть, свернуть.

Сообщение Confocal »

т.е. может быть наподобие схемы выше.
Вложения
Panel close.PNG
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Кнопки закрыть, развернуть, свернуть.

Сообщение Eugen Graf »

Да, во первых то, что там имеется с динамическими ивентами лишнее. Во вторых ты например в этом ивенте можешь в индикатор "стоп" вписать значение TRUE, а в остальных циклах выходить по условию если локальная переменная "стоп" равна TRUE. Ну а сам индикатор можно спрятать, если он тебе мешает.
Вложения
StopWhile.png
StopWhile.png (6.58 КБ) 7205 просмотров
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Кнопки закрыть, развернуть, свернуть.

Сообщение Eugen Graf »

Или вот так с очередями:
Вложения
StopWhile.png
StopWhile.png (10.24 КБ) 7204 просмотра
Confocal
assistant
assistant
Сообщения: 104
Зарегистрирован: 15 авг 2008, 11:55
Версия LabVIEW: 8.5
Откуда: Россия, Московская область
Контактная информация:

Re: Кнопки закрыть, развернуть, свернуть.

Сообщение Confocal »

все работает. В этом примере если стоит True то окно не закрывается и прибор останавливается.
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Кнопки закрыть, развернуть, свернуть.

Сообщение Eugen Graf »

Это из за того что на Discard подаётся TRUE, если сделать FALSE то и окно тоже будет закрываться. Окно можно так же закрыть и позже через FP.Close. Все возможности в :labview: имеются :1stplace:
Ответить

Вернуться в «Лицевая панель»