|
|
|
Что вместо FormSet.WinType=3 ?
|
|||
|---|---|---|---|
|
#18+
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 слишком радикально… ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2005, 14:35:55 |
|
||
|
Что вместо FormSet.WinType=3 ?
|
|||
|---|---|---|---|
|
#18+
Чем тебя не устраивает FormSet.WindowType = 1 (Modal) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2005, 14:49:18 |
|
||
|
Что вместо FormSet.WinType=3 ?
|
|||
|---|---|---|---|
|
#18+
Не устраивает тем, что меню остается активным. И можно вызывать означенный FormSet несколько раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2005, 16:17:54 |
|
||
|
Что вместо FormSet.WinType=3 ?
|
|||
|---|---|---|---|
|
#18+
Это Вы что-то перемудрили. Как раз при настройке FormSet.WindowType = 1 (Modal) нужно предпринимать специальные действия чтобы активизировать меню (переопределить пункт меню после активизации FormSet). По умолчанию, при открытии модальной формы (или FormSet) большинство пунктов меню становиться неактивным. Исключая некоторые системные пункты (вроде "Копировать", "Вставить"). Так что, открыть второй раз тот же FormSet будет невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2005, 16:25:35 |
|
||
|
Что вместо FormSet.WinType=3 ?
|
|||
|---|---|---|---|
|
#18+
А, теперь понял, Вы, вероятно, сделали вызов своей формы из основной линейки меню. Перенесите его в выпадающее меню. Именно они становятся не активными при активизации модальных форм. Делать прямой вызов чего-либо из основной линейки меню - это крайне неразумное решение. Вы сужаете возможность последующих модификаций своей программы. Хотя, если очень надо, сделать неактивным основное меню можно командой SET SKIP OF MENU _MSYSMENU .T. Соответственно, снова активизировать SET SKIP OF MENU _MSYSMENU .F. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2005, 16:38:29 |
|
||
|
Что вместо FormSet.WinType=3 ?
|
|||
|---|---|---|---|
|
#18+
Благодарю. То, что нужно и работает. Правда, любая радость всегда чем-то омрачена, как говорил человек, у которого откинула коньки теща, но пришлось башлять за гроб. Меню успешно деактивируется. Но с активизацией возникла проблема: оно не хочет активироваться, если первая форма из FormSet-а закрывается крестом. (Если зарытие по командной кнопке, то все в порядке.) Я навесил SET SKIP OF MENU _MSYSMENU .F. на FormSet-ные DEACTIVATE, RELEASE, DESTROY, UNLOAD, READVALID, HIDE, READDEACTIVATE. Но выход из Formset-a минует эти события. Где-то протекает... Куда бы еще прицепить команду активизации меню? Тогда будет полный ОК. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2005, 01:49:16 |
|
||
|
Что вместо FormSet.WinType=3 ?
|
|||
|---|---|---|---|
|
#18+
Проще всего перенести вызов своего FormSet в выпадающее меню. Убрать из главной линейки меню. Тогда вообще не будет никакой мороки с активацией/деактивацией. При нажатии "на крестик" формы срабатывает событие QueryUnload - формы. Вот в нем и надо перенаправить вызов на кнопку NODEFAULT ThisForm.CmdExit.Click() Здесь CmdExit - это та кнопка главной формы по которой осуществляется "штатное" закрытие FormSet. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.06.2005, 10:56:12 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33117511&tid=1594048]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 360ms |

| 0 / 0 |
