powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Что вместо FormSet.WinType=3 ?
8 сообщений из 8, страница 1 из 1
Что вместо FormSet.WinType=3 ?
    #33117511
men dea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FormSet.WinType = 3 (Read Modal).
Ранее в VFP можно было установить значение 3, ныне оставлены опции 0 (modeless) и 1 (modal).
И получается, при передаче управления в меню из главной программы по команде DO main_menu.mpr , а из него вызове FormSet, меню отстается доступным.
Чего совсем не хочется… Хочется, чтобы оно было Disabled, но Visible.
Как деактивировать меню, но чтобы оно осталось видимым, а при выходе из формы снова активизировать?
DEACTIVATE MENU main_menu в cleanup General options для МЕНЮ не срабатывает, в ACTIVATE FormSet тоже не хочет, а DEACTIVATE MENU _MSYSMENU слишком радикально…
...
Рейтинг: 0 / 0
Что вместо FormSet.WinType=3 ?
    #33117545
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем тебя не устраивает FormSet.WindowType = 1 (Modal) ?
...
Рейтинг: 0 / 0
Что вместо FormSet.WinType=3 ?
    #33117804
men dea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не устраивает тем, что меню остается активным. И можно вызывать означенный FormSet несколько раз
...
Рейтинг: 0 / 0
Что вместо FormSet.WinType=3 ?
    #33117822
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это Вы что-то перемудрили.

Как раз при настройке FormSet.WindowType = 1 (Modal) нужно предпринимать специальные действия чтобы активизировать меню (переопределить пункт меню после активизации FormSet).

По умолчанию, при открытии модальной формы (или FormSet) большинство пунктов меню становиться неактивным. Исключая некоторые системные пункты (вроде "Копировать", "Вставить"). Так что, открыть второй раз тот же FormSet будет невозможно.
...
Рейтинг: 0 / 0
Что вместо FormSet.WinType=3 ?
    #33117864
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, теперь понял, Вы, вероятно, сделали вызов своей формы из основной линейки меню. Перенесите его в выпадающее меню. Именно они становятся не активными при активизации модальных форм.

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

Хотя, если очень надо, сделать неактивным основное меню можно командой

SET SKIP OF MENU _MSYSMENU .T.

Соответственно, снова активизировать

SET SKIP OF MENU _MSYSMENU .F.
...
Рейтинг: 0 / 0
Что вместо FormSet.WinType=3 ?
    #33118494
men dea
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Благодарю.
То, что нужно и работает.
Правда, любая радость всегда чем-то омрачена, как говорил человек, у которого откинула коньки теща, но пришлось башлять за гроб.
Меню успешно деактивируется. Но с активизацией возникла проблема: оно не хочет активироваться, если первая форма из FormSet-а закрывается крестом. (Если зарытие по командной кнопке, то все в порядке.)
Я навесил SET SKIP OF MENU _MSYSMENU .F. на FormSet-ные DEACTIVATE, RELEASE, DESTROY, UNLOAD, READVALID, HIDE, READDEACTIVATE. Но выход из Formset-a минует эти события. Где-то протекает...

Куда бы еще прицепить команду активизации меню? Тогда будет полный ОК.
...
Рейтинг: 0 / 0
Что вместо FormSet.WinType=3 ?
    #33118909
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще всего перенести вызов своего FormSet в выпадающее меню. Убрать из главной линейки меню. Тогда вообще не будет никакой мороки с активацией/деактивацией.

При нажатии "на крестик" формы срабатывает событие QueryUnload - формы. Вот в нем и надо перенаправить вызов на кнопку

NODEFAULT
ThisForm.CmdExit.Click()

Здесь CmdExit - это та кнопка главной формы по которой осуществляется "штатное" закрытие FormSet.
...
Рейтинг: 0 / 0
Что вместо FormSet.WinType=3 ?
    #33120738
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi men dea!

ACTIVATE MENU _MSYSMENU NOWAIT
Для "обновления" оного (после "включения" конечно).

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Что вместо FormSet.WinType=3 ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]