:: Visual Foxpro, Foxpro for DOS
Глюки меню
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Писал тут на работе программку в которой необходимо было сделать меню для модальной формы. Все в принципе работает весело, но вылез один глюк при добавлении в Bar popup опции PICTRES или PICTURE. Сразу все слетает с обшибкой
Цитата:
"Allowed DO nesting ..."
пример прилагается. Стабильный слет в VFP7-8-9
Непонятно, в чем провинилась опция PICTRES или PICTURE ?
Конечно это не смертельно, но как-то неприятно.

oForm=CreateObject("Form1")
oForm.Show(1)
Define Class Form1 as Form
AutoCenter=.T.
WindowType=1
Add Object cmdButton as CommandButton with ;
Left=100,;
Top=100,;
Height=25,;
Width=100,;
Caption='Close'
Procedure cmdButton.Click
thisform.Release()
Procedure Load
Define Popup ModalPopup Relative
Define Pad ModalPad of _MSYSMENU Prompt 'Form1' ;
Skip For ;
iif(type('_screen.activeform')='O' ;
and pemstatus(_screen.activeform,'ModalMenu',5),;
_screen.activeform.modalmenu(),.T.)
on pad modalpad of _msysmenu activate popup ModalPopup
on selection popup ModalPopup _screen.activeform.ModalMenuSelection(Bar())
Procedure ModalMenu
* !* Если убрать комментарий в конце строки - ошибка
Define Bar 1 of ModalPopup prompt 'One' && pictres _MFI_NEW
Define Bar 2 of ModalPopup prompt 'Two'
Define Bar 3 of ModalPopup prompt 'Three'
Define Bar 4 of ModalPopup prompt '\-'
Define Bar 5 of ModalPopup prompt 'Five'
*** always return .F.
Return .F.
Procedure ModalMenuSelection(nBar)
MessageBox("Modal menu selected bar # "+str(nBar),64,this.caption)
Procedure Destroy
Release Pad ModalPad of _msysmenu
Release popup ModalPopup Extended
EndDefine
Ratings: 0 negative/0 positive
Re: Глюки меню
Syberex
Автор

Сообщений: 1432
Откуда: Кострома
Дата регистрации: 19.01.2004
Значит картинок в shortcut-е не будет?




------------------
Ratings: 0 negative/0 positive
Re: Глюки меню
Андрей Давыдов

Сообщений: 1411
Дата регистрации: 08.02.2003
Дык не фиг из модальной формы доступ к меню давать.
Desktop=.t. и дисейблить _screen.




------------------
Ratings: 0 negative/0 positive
Re: Глюки меню
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Цитата:
Дык не фиг из модальной формы доступ к меню давать.
Почему?
То что ты предлагаешь (блокированная главная форма) мне кажется весьма
некрасивым (по многим причинам)




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Глюки меню
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
2Андрей Давыдов

Так меню и так блокировано. Нужно было имено из МОДАЛЬНОЙ формы добраться до меню.
в фоксе 2.6 это лечилось формированием меню в Read When кода формы. А тут ..., ну очень надо было и тут такая подляна
Ratings: 0 negative/0 positive
Re: Глюки меню
Syberex
Автор

Сообщений: 1432
Откуда: Кострома
Дата регистрации: 19.01.2004
Цитата:
Нужно было имено из МОДАЛЬНОЙ формы добраться до меню
Дык это нарушает принцип модальности ;)




------------------
Ratings: 0 negative/0 positive
Re: Глюки меню
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Кстати а почему это оно у тебя в Load определяется? Разве не лучше в
Activate (или даже GotFocus) формы определять подменю чтоб оно было доступно
из модальной формы?Правда проблемы это не решает, но по крайней мере нету
зацикливания.




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Глюки меню
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
А какая разница этому popup где его определили ?
Все равно оно переопределяется при активизации системного меню
Define Pad ... SKIP FOR вот оно и дергает переопределение меню
Ratings: 0 negative/0 positive
Re: Глюки меню
AlexK

Сообщений: 2114
Откуда: Королев,Москва
Дата регистрации: 11.12.2000
А если убрать Load и ModalMenu

а в GotFocus

Procedure GotFocus
Define Popup ModalPopup MARGIN RELATIVE SHADOW COLOR SCHEME 4
Define Pad ModalPad of _MSYSMENU Prompt 'Form1'
Define Bar 1 of ModalPopup prompt 'One' PICTRES _mfi_new
Define Bar 2 of ModalPopup prompt 'Two'
Define Bar 3 of ModalPopup prompt 'Three'
Define Bar 4 of ModalPopup prompt '\-'
Define Bar 5 of ModalPopup prompt 'Five'
on pad modalpad of _msysmenu activate popup ModalPopup
on selection popup ModalPopup _screen.activeform.ModalMenuSelection(Bar())
*** always return .F.
Return .F.
Ratings: 0 negative/0 positive
Re: Глюки меню
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
Во блин ! Век живи - век учись и все равно дураком помрешь
С Activate формы пробовал не прокатило без изврата переопределения popup через ModalMenu, а вот про GotFocus формы даже и не вспомнил !
Спасибо AlexK будешь в Кургане с меня пиво
Или лучше мы к вам ?
Ratings: 0 negative/0 positive
Re: Глюки меню
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Ё, я и не заметил что у тебя там такой изврат (в виде SKIP FOR
вызывающего метод который переопределяет само подменю ) Определённо надо
по ночам спать




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Глюки меню
Syberex
Автор

Сообщений: 1432
Откуда: Кострома
Дата регистрации: 19.01.2004
Цитата:
изврат (в виде SKIP FOR
действительно круто ;)

Цитата:
Определённо надо по ночам спать
А когда же делать прогу




------------------
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 20 (Гостей: 20)

© 2000-2024 Fox Club 
Яндекс.Метрика