powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / меню
4 сообщений из 4, страница 1 из 1
меню
    #32531602
Новичек_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приложение на основе AS top levelForm
меню-програмный модуль.
В меню "окно" на не модальных формах(соответственно
in top level)
(а на других то никак-:-000)
1)не размещает окна каскадом
_mwi_cascade
2)и не работает _mwi_arran
3)Также команда _mwindow
скрывает\убивает меню главной формы
Чего посоветуете

-Менял буквы на русские\английские
-назначал клавиши горячие
-раскомментировал SET SYSMENU AUTOMATIC и все прочее
все не помогает.

Вот если запустить это меню из
фокса, без формы "высокого уровня"-усе работает.
Чего там какие настройки или чего я упустил???
прошу ответить на 3 вопроса подробно....
Вот код:
Lparameter oformref


If Type("m.oFormRef") # "O" Or ;
LOWER(m.oformref.BaseClass) # 'form' Or ;
m.oformref.ShowWindow # 2
Messagebox([This menu can only be called from a Top-Level form. Ensure that your form's ShowWindow property is set to 2. Read the header section of the menu's MPR file for more details.])
Return
Endif
* *********************************************************
* *
* * Menu Definition
* *
* *********************************************************
SET SYSMENU TO
*SET SYSMENU AUTOMATIC
*SET PROCEDURE TO proc.prg
Define Menu My_menu_name In (m.oformref.Name) Bar
.....
DEFINE PAD _msm_windo OF My_menu_name PROMPT "\<Oкно" COLOR SCHEME 3 ;
KEY ALT+O, ""
.....
ON PAD _msm_windo OF My_menu_name ACTIVATE POPUP _msm_windo
....
DEFINE POPUP _mwindow MARGIN RELATIVE SHADOW COLOR SCHEME 4
DEFINE BAR _mwi_cascade OF _mwindow PROMPT "Kаскадом" ;
PICTRES _mwi_cascade;
MESSAGE "Расположить окна каскадом"
DEFINE BAR _mwi_arran OF _mwindow PROMPT "Разместить все окна" ;
PICTRES _mwi_arran;
MESSAGE "Отображает на экране все окна так, чтобы они не перекрывались."
DEFINE BAR 1 OF _mwindow PROMPT "\-"
DEFINE BAR _mwi_dockable OF _mwindow PROMPT "Doc\<kable" ;
PICTRES _mwi_dockable;
MESSAGE "Enable docking of this window"
DEFINE BAR 2 OF _mwindow PROMPT "\-"
DEFINE BAR _mwi_hide OF _mwindow PROMPT "Скрыть окно" ;
PICTRES _mwi_hide;
MESSAGE "Скрывает активное окно"
DEFINE BAR _mwi_hidea OF _mwindow PROMPT "Скрыть все окна" ;
PICTRES _mwi_hidea;
MESSAGE "Скрывает все окна"
DEFINE BAR _mwi_clear OF _mwindow PROMPT "Очистить" ;
PICTRES _mwi_clear;
MESSAGE "Clears text from the application workspace or the current output window"
DEFINE BAR _mwi_rotat OF _mwindow PROMPT "Следующее окно" ;
PICTRES _mwi_rotat;
KEY CTRL+F1, "Ctrl+F1" ;
MESSAGE "Показать следующее окно."
DEFINE BAR 3 OF _mwindow PROMPT "\-"
DEFINE BAR _mwi_showa OF _mwindow PROMPT "Показать все окна" ;
PICTRES _mwi_showa;
MESSAGE "Отображает все открытые окна."
...
Рейтинг: 0 / 0
меню
    #32532574
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если так? У меня пп 1 и 2 нормально работают, а вот с п.3 не совсем вразумительно. Если про скрытие всех окон, то не все так просто, как хотелось бы.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
SET SYSMENU TO DEFAULT 
SET SYSMENU AUTOMATIC
PUBLIC goMainWindow as Form 
PUBLIC ARRAY gaWindows[ 1 ]
goMainWindow=NEWOBJECT('TopLevel')
goMainWindow.Visible=.T.
READ EVENTS 
RELEASE ALL EXTENDED 

PROCEDURE NewWindow
	LOCAL n as Integer 
	n=ALEN(gaWindows)
	IF n> 1  OR VARTYPE(gaWindows[ 1 ])#'L'
		n=n+ 1 
	ENDIF 
	DIMENSION gaWindows[n]
	gaWindows[n]=NEWOBJECT('InTopLevel')
	gaWindows[n].Visible=.T.
ENDPROC 

PROCEDURE HideAll
*!*		LOCAL i as Integer 
*!*		FOR i= 1  TO ALEN(gaWindows)
*!*			IF VARTYPE(gaWindows[ 1 ])='O' AND !ISNULL(gaWindows[ 1 ])
*!*				gaWindows[i].Visible=.F.
*!*			ENDIF 
*!*		ENDFOR 
	LOCAL loWindow as Form
	FOR EACH loWindow IN _screen.Forms 
		loWindow.Visible= .F. 
	ENDFOR 
ENDPROC 

DEFINE CLASS TopLevel AS form
	ShowWindow =  2 
	Caption = "TopLevel"
	WindowState =  2 
	Name = "toplevel"
	PROCEDURE newwindow
		DO FORM form2
	ENDPROC
	PROCEDURE Init
		* *
		* * Menu Definition
		* *
		* *********************************************************
		*SET PROCEDURE TO proc.prg
		Define Menu My_menu_name In (this.Name) Bar
		DEFINE PAD test OF My_menu_name PROMPT "\<Test" COLOR SCHEME  3  
		DEFINE PAD _msm_windo OF My_menu_name PROMPT "\<Oкно" COLOR SCHEME  3  ;
		KEY ALT+O, ""
		ON PAD test OF My_menu_name ACTIVATE POPUP test
		ON PAD _msm_windo OF My_menu_name ACTIVATE POPUP _msm_windo
		DEFINE POPUP test MARGIN RELATIVE SHADOW COLOR SCHEME  4 
		DEFINE BAR  1  OF test PROMPT "Новое окно" ;
		KEY Ctrl+N ;
		PICTRES _MFI_NEW;
		MESSAGE "Отобразить новое окно"
		DEFINE POPUP _mwindow MARGIN RELATIVE SHADOW COLOR SCHEME  4 
		DEFINE BAR _mwi_cascade OF _mwindow PROMPT "Kаскадом" ;
		PICTRES _mwi_cascade;
		MESSAGE "Расположить окна каскадом"
		DEFINE BAR _mwi_arran OF _mwindow PROMPT "Разместить все окна" ;
		PICTRES _mwi_arran;
		MESSAGE "Отображает на экране все окна так, чтобы они не перекрывались."
		DEFINE BAR  1  OF _mwindow PROMPT "\-"
		DEFINE BAR _mwi_dockable OF _mwindow PROMPT "Doc\<kable" ;
		PICTRES _mwi_dockable;
		MESSAGE "Enable docking of this window"
		DEFINE BAR  2  OF _mwindow PROMPT "\-"
		DEFINE BAR _mwi_hide OF _mwindow PROMPT "Скрыть окно" ;
		PICTRES _mwi_hide;
		MESSAGE "Скрывает активное окно"
		DEFINE BAR  3  OF _mwindow PROMPT "Скрыть все окна" ;
		PICTRES _mwi_hidea;
		MESSAGE "Скрывает все окна"
		DEFINE BAR _mwi_clear OF _mwindow PROMPT "Очистить" ;
		PICTRES _mwi_clear;
		MESSAGE "Clears text from the application workspace or the current output window"
		DEFINE BAR  4  OF _mwindow PROMPT "\-"
		DEFINE BAR _mwi_rotat OF _mwindow PROMPT "Следующее окно" ;
		PICTRES _mwi_rotat;
		KEY CTRL+F1, "Ctrl+F1" ;
		MESSAGE "Показать следующее окно."
		DEFINE BAR _mwi_showa OF _mwindow PROMPT "Показать все окна" ;
		PICTRES _mwi_showa;
		MESSAGE "Отображает все открытые окна."
		oThis=this
		ON SELECTION BAR  1  OF test do NewWindow
		ON SELECTION BAR  3  OF _mwindow do HideAll
		ACTIVATE MENU My_menu_name NOWAIT 
	ENDPROC
	PROCEDURE Unload
		DEACTIVATE MENU My_menu_name
		RELEASE MENUS My_menu_name
		CLEAR EVENTS 
	ENDPROC
	PROCEDURE visible_assign
		LPARAMETERS vNewVal
		*To do: Modify this routine for the Assign method
		THIS.Visible = .T.
	ENDPROC
ENDDEFINE

DEFINE CLASS intoplevel AS form
	Top =  0 
	Left =  0 
	Height =  169 
	Width =  210 
	ShowWindow =  1 
	Caption = "InLevel"
	MDIForm = .T.
	Name = "intoplevel"
ENDDEFINE
...
Рейтинг: 0 / 0
меню
    #32533792
Новичек_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получается, но так все сложно,
а штатных средств чтоли нет,
почему же из среды то работает, а в экзешнике нет?????
...
Рейтинг: 0 / 0
меню
    #32533968
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что конкретно не работает? У меня вроде все нормально с ехе. SET SYSMENU TO DEFAULT?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / меню
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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