Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как на форму поместить строку меню? / 6 сообщений из 6, страница 1 из 1
21.03.2005, 11:45
    #32970848
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на форму поместить строку меню?
Я сделал главную форму . На ней мне надо сделать менюху. В идеале я хочу чтобы эта форма была родительской , а остальные формы были дочерними.

Все дочерние формы у меня готовы.

Создал в редакторе меню , но как его прикрутить к форме. Оно прикручивается, но окну самого фокса!

Кто давно мне говорил , что к форме прилепить меню нельзя? А 8 фоксе что изменилось в этом направлении?
...
Рейтинг: 0 / 0
21.03.2005, 12:22
    #32970988
SAM-FoxPro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на форму поместить строку меню?
Строку меню можно вставить только в два типа форм: AsTopLevel и Desktop.
В первом случае можно использовать конструктор, во втором - надо писать меню самому в методе Init формы.
При создании меню в AsTopLevel Form:
1. Вызовите конструктор меню.
2. В окне New Menu выберите Menu
3. Откройте в главном меню пункт View -> General Option; в появившемся окне установите флажок Top-Level Form.
4. Сформируйте в кострукторе ваше меню и сохраните его.

В AsTopLevel Form в методе Init введите код:

DO MyMenu.mpr WITH this, .T., .T. && MyMenu - имя вашего файла меню

В методе Destroy этой формы введите код:

RELEASE MENUS (THIS.NAME) EXTENDED

Взято, по-моему на FoxClub...
...
Рейтинг: 0 / 0
21.03.2005, 12:24
    #32971000
luser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на форму поместить строку меню?
Описываешь класс, примерно так.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
 Define Class cMenu As Custom
	Procedure Init
		Define Menu (m.oFrm.Name) In (m.oFrm.Name) Bar
		Define Pad Pad_Station Of (m.oFrm.Name) Prompt "\<Станция" Color Scheme  3 
		On Pad Pad_Station Of (m.oFrm.Name)  Activate Popup Popup_Station
		Define Popup Popup_Station Margin Relative Shadow Color Scheme  4 
		Define Bar  1   Of Popup_Station   Prompt  '\<Запуск станции'
		Define Bar  3   Of Popup_Station   Prompt  '\-'
		Define Bar  10  Of Popup_Station   Prompt  '\<Пользователи системы'
		Define Bar  9   Of Popup_Station   Prompt  '\<Системные настройки'
		Define Bar  6   Of Popup_Station   Prompt  '\<Настройки линий'
		Define Bar  7   Of Popup_Station   Prompt  '\-'
		Define Bar  8   Of Popup_Station   Prompt  '\<Завершение работы'

		Acti Menu (oFrm.Name)  Nowait

		On Selection Bar  1    Of Popup_Station m.oFrm.OnRun()
		On Selection Bar  6    Of Popup_Station m.oFrm.RuleLine()
		On Selection Bar  8    Of Popup_Station m.oFrm.OnClose()
		On Selection Bar  9    Of Popup_Station m.oFrm.OnNastr()
		On Selection Bar  10   Of Popup_Station m.oFrm.OnUsers()
Enddefine 


В форме ( у нее обязательно долно быть WindowState=2) в методе Init делаешь так :

Код: plaintext
1.
2.
3.
 SET CLASSLIB [имя файла в котром у тебя описан класс cMenu ] additive

PUBLIC oFrm as Object
this.AddProperty("frm_menu",CREATEOBJECT("cMenu")) 

m.oFrm.OnRun() - а это вызов из меню метода формы в котором оно запущено.
ссылка на меню соответсвенно (this.frm_menu)

В принципе все.
...
Рейтинг: 0 / 0
21.03.2005, 12:36
    #32971037
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на форму поместить строку меню?
luserОписываешь класс, примерно так.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
 Define Class cMenu As Custom
	Procedure Init
		Define Menu (m.oFrm.Name) In (m.oFrm.Name) Bar
		Define Pad Pad_Station Of (m.oFrm.Name) Prompt "\<Станция" Color Scheme  3 
		On Pad Pad_Station Of (m.oFrm.Name)  Activate Popup Popup_Station
		Define Popup Popup_Station Margin Relative Shadow Color Scheme  4 
		Define Bar  1   Of Popup_Station   Prompt  '\<Запуск станции'
		Define Bar  3   Of Popup_Station   Prompt  '\-'
		Define Bar  10  Of Popup_Station   Prompt  '\<Пользователи системы'
		Define Bar  9   Of Popup_Station   Prompt  '\<Системные настройки'
		Define Bar  6   Of Popup_Station   Prompt  '\<Настройки линий'
		Define Bar  7   Of Popup_Station   Prompt  '\-'
		Define Bar  8   Of Popup_Station   Prompt  '\<Завершение работы'

		Acti Menu (oFrm.Name)  Nowait

		On Selection Bar  1    Of Popup_Station m.oFrm.OnRun()
		On Selection Bar  6    Of Popup_Station m.oFrm.RuleLine()
		On Selection Bar  8    Of Popup_Station m.oFrm.OnClose()
		On Selection Bar  9    Of Popup_Station m.oFrm.OnNastr()
		On Selection Bar  10   Of Popup_Station m.oFrm.OnUsers()
Enddefine 


В форме ( у нее обязательно долно быть WindowState=2) в методе Init делаешь так :

Код: plaintext
1.
2.
3.
 SET CLASSLIB [имя файла в котром у тебя описан класс cMenu ] additive

PUBLIC oFrm as Object
this.AddProperty("frm_menu",CREATEOBJECT("cMenu")) 

m.oFrm.OnRun() - а это вызов из меню метода формы в котором оно запущено.
ссылка на меню соответсвенно (this.frm_menu)

В принципе все.

Биг респект!

А Как подменю реализовать ?
...
Рейтинг: 0 / 0
21.03.2005, 13:09
    #32971140
luser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на форму поместить строку меню?
Вот пример тебе, правда из другой программы, но смысл тот же.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 define menu (oFRM.Name) in (oFRM.Name) bar
DEFINE PAD Main OF (oFRM.name) PROMPT 'Система' COLOR SCHEME  3     
ON PAD Main OF (oFRM.name) ACTIVATE POPUP SubPud
	DEFINE POPUP SubPud MARGIN RELATIVE COLOR SCHEME  7 
	DEFINE BAR  1  OF SubPud PROMPT '\<Клиенты'     
	ON BAR  1  OF SubPud ACTIVATE POPUP Acc
				DEFINE POPUP Acc MARGIN RELATIVE SHADOW COLOR SCHEME  4 
						DEFINE BAR  1   OF Acc PROMPT '\<Добавить'
						DEFINE BAR  3   OF Acc PROMPT '\<Удалить'
						
...........
...
Рейтинг: 0 / 0
21.03.2005, 14:02
    #32971299
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как на форму поместить строку меню?
luserВот пример тебе, правда из другой программы, но смысл тот же.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 define menu (oFRM.Name) in (oFRM.Name) bar
DEFINE PAD Main OF (oFRM.name) PROMPT 'Система' COLOR SCHEME  3     
ON PAD Main OF (oFRM.name) ACTIVATE POPUP SubPud
	DEFINE POPUP SubPud MARGIN RELATIVE COLOR SCHEME  7 
	DEFINE BAR  1  OF SubPud PROMPT '\<Клиенты'     
	ON BAR  1  OF SubPud ACTIVATE POPUP Acc
				DEFINE POPUP Acc MARGIN RELATIVE SHADOW COLOR SCHEME  4 
						DEFINE BAR  1   OF Acc PROMPT '\<Добавить'
						DEFINE BAR  3   OF Acc PROMPT '\<Удалить'
						
...........


Спасибо.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как на форму поместить строку меню? / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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