Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Search Path, меню, форма  [new]
IgorProgrammer
Member

Откуда:
Сообщений: 687
Всем добрый день...
У меня в 8-ой лисе не сохраняется в настройках Search Path...
Как это побороть???

Как можно обратиться к меню???
У меня меню цепляется на форму...

DEFINE MENU (m.cMenuName) IN (m.oFormRef.Name) BAR

Мне надо при этом присвоить какой-либо переменной эту менюшку и работать с ней как с объектом...
Переменная может быть или формы или паблик...
В менюшке появилось свойство INVERT... как можно в процессе работы им манипулировать???

Главная форма (form1)
form1.showwindow = 2
Из нее запускаю form2
form2.showwindow = 1
Из нее запускаю form3
form3.showwindow = 1

Как можно отследить нажатие вне формы form3 и закрыть ее???

Все заранее спасибо...
12 ноя 03, 14:39    [414630]     Ответить | Цитировать Сообщить модератору
 Re: Search Path, меню, форма  [new]
Hel!Riser
Member

Откуда: Нижний Новгород
Сообщений: 972
автор писал:
У меня в 8-ой лисе не сохраняется в настройках Search Path...
Как это побороть???

скорей фсего у тебя в Config.FPW есть строчка PATH=. кот и перебивает сохраняемые через среду настройки. А если нет - то заведи их тама! :)
13 ноя 03, 10:15    [415864]     Ответить | Цитировать Сообщить модератору
 Re: Search Path, меню, форма  [new]
IgorProgrammer
Member

Откуда:
Сообщений: 687
Hel!Riser:
скорей фсего у тебя в Config.FPW есть строчка PATH=. кот и перебивает сохраняемые через среду настройки. А если нет - то заведи их тама! :)

Не было... Завел... Результат - тот же.

А что по поводу менюхи и формы...
Очень надо решить эти траблы... а то время идет, а работа стоит...

Еще один глюк... В 6-ой лисе к екзшнику цеплялась иконка...
В 8-ой лисе ципляется лиса... хотя иконка есть... и в свойствах проекта она есть...
При компиляции к екзшнику не ципляются данные о версиии...

Какой-то ужас с переходом на 8-ую лису...
13 ноя 03, 12:22    [416268]     Ответить | Цитировать Сообщить модератору
 Re: Search Path, меню, форма  [new]
andrew_Pr
Member

Откуда: Москва
Сообщений: 167
У меня в 8-ке и иконка цепляется в проект, и с SearchPath сохраняется. Может у тебя конкретно какая-то левая копия? Где брал-то?
13 ноя 03, 12:52    [416358]     Ответить | Цитировать Сообщить модератору
 Re: Search Path, меню, форма  [new]
IgorProgrammer
Member

Откуда:
Сообщений: 687
andrew_Pr:
В КвазарМикро...
А они заказывали в Бостоне если я не ошибаюсь...
Короче лицензионка это...
Правда без SP-ов...
Ща как-раз закачиваю их...
13 ноя 03, 13:24    [416468]     Ответить | Цитировать Сообщить модератору
 Re: Search Path, меню, форма  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
1. Значения SearchPath сохраняются в системном реестре (если нажал Set As Default в Options). По умолчанию это где-то в разделе

HKEY_CURRENT_USER\SoftWare\Microsoft\VisualFoxPro\8.0\Options

Если раздел недоступен для редактирования, то ничего и не сохранится. Необходимо будет при каждом запуске использовать Config.fpw или ручками прописывать пути доступа через SET PATH

2. В 8 версии если компиляция проекта происходит в Win9x, то набюлюдается масса глюков. В том числе и не цепляется иконка. Необходимо компилить проект в Win2K или в WinXP. Иногда помогает явное прописывание

_SCREEN.Icon="MyIcon.ico"

Ну и надеюсь ты в курсе, что файл иконки должен содержать 2 картинки: 16х16 и 32х32. Опять же, при компиляции в Win9x иногда помогает добавление в файл картинки 48х48

3. Если форма НЕ модальная, то можно просто сделать закрытие формы в событии Deactivate(), поскольку нажатие вне формы автоматически вызовет это событие.
13 ноя 03, 15:13    [416778]     Ответить | Цитировать Сообщить модератору
 Re: Search Path, меню, форма  [new]
IgorProgrammer
Member

Откуда:
Сообщений: 687
ВладимирМ:
1,2)
Как не печально это признавать...
Но действительно глюки из-за работы в Win9x...
В 2000 усе тип-топ...

3.) Форма не модальная... но вызывается она из модальной формы...
и Deactivate() пролетает...
Может есть еще че-то???

И что насчет менюхи подскажешь???
13 ноя 03, 16:13    [416967]     Ответить | Цитировать Сообщить модератору
 Re: Search Path, меню, форма  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Я не делал проект на базе As Top Level форм. Все в основном экране. As Top Level только на старте проекта для задания паролей. Поэтому не уверен насчет Deactivate.

Она точно не срабатывает? Речь идет о нажатии вне формы 3, но внутри формы 2 или формы 1. Подозреваю, что нажатие вне всех 3-х форм Fox отловить не сможет, поскольку это событие происходит не под управлением FoxPro. Придется как-то изворачиваться через API

Поскольку форма 2 у тебя модальная, то управление может быть возвращено только в нее. Может имеет смысл в Activate или GotFocus второй формы проверять факт существования 3 и закрывать ее если она есть?

По поводу объектного меню.

Разработки были уже в версии VFP6. Для примера посмотри 2 решения:

http://www.foxclub.ru/sol/index.php?act=view&id=4
http://www.foxclub.ru/sol/index.php?act=view&id=143

Лично мне это не понадобилось. Хватило штатных способов управления меню.
13 ноя 03, 16:49    [417093]     Ответить | Цитировать Сообщить модератору
 Re: Search Path, меню, форма  [new]
IgorProgrammer
Member

Откуда:
Сообщений: 687
ВладимирМ:

Я уже юзал эту менюху...
Мороки много... Толку мало...
Прейдется оставлять эту долбаную перерисовку менюхи на форме...

Нажатие, что на форме 2, что на форме 1 - ни че не дает...
Deactivate() все также в пролетает...

Activate или GotFocus формы 2 - тоже в пролете...

Не уж остается изворачиваться через API???
Пока мне даже в голову не лезет как...
13 ноя 03, 17:36    [417217]     Ответить | Цитировать Сообщить модератору
 Re: Search Path, меню, форма  [new]
Равиль
Member

Откуда: Уфа
Сообщений: 127
Не уверен, что понял правильно :)
Если такое не потянет, ай-да в ФоксКлуб:
|>

_Screen.Visible=.F.
oStartForm = Createobject("StartTopForm")
oStartForm.Show()
Read Events

Clear All
_Screen.Visible=.T.
Cancel

Define Class StartTopForm As Form
Caption = " TopLevel форма #1"
AutoCenter = .T.
ShowWindow = 2
Height = 500
Width = 700

Add Object CloseForm As CommandButton With;
CAPTION = "Выход",;
HEIGHT = 40,;
TOP = 40,;
LEFT = 500

Add Object Form2 As CommandButton With;
CAPTION = "Модальная",;
HEIGHT = 40,;
TOP = 40,;
LEFT = 250

Procedure Form2.Click()
Public oForm2
oForm2 = Createobject("ModalForm")
oForm2.Left = 50
oForm2.Show()

Procedure CloseForm.Click()
Clear Events

Procedure Destroy()
Clear Events

Procedure Load()
Public m.Menu_Name, m.Form_Name
m.Form_name=This.Name
m.Menu_name="m_"+This.Name

Define Menu (m.Menu_name) Bar In Window (m.Form_Name)
*****************************************************
Define Pad p1 Of (m.Menu_name) Prompt "Операции "
Define Pad p2 Of (m.Menu_name) Prompt "Товары "
Define Pad p_quit Of (m.Menu_name) Prompt "Выход "
On Pad p1 Of (m.Menu_name) Activate Popup OPE
On Pad p2 Of (m.Menu_name) Activate Popup TOV
On Sele Pad p_quit Of (m.Menu_name) Do to_quit

Local m.i, m.POP
m.i=0
m.POP="OPE"
Define Popup (m.POP) SHORT Relative
m.i=m.i+1
Define Bar m.i Of (m.POP) Prompt "Создать операцию"
m.i=m.i+1
Define Bar m.i Of (m.POP) Prompt "Удалить операцию"

m.i=0
m.POP="TOV"
Define Popup (m.POP) SHORT Relative
m.i=m.i+1
Define Bar m.i Of (m.POP) Prompt "Купить товар"
m.i=m.i+1
Define Bar m.i Of (m.POP) Prompt "Продать товар"

Activate Menu (m.Menu_name) Nowait
**********************************

Enddefine


Define Class ModalForm As Form

Caption = " Модальная дочерняя форма #2"
WindowType = 1
ShowWindow = 1
Height = 400
Width = 600

Add Object Form3 As CommandButton With;
CAPTION = "Немодальная",;
HEIGHT = 40,;
TOP = 40,;
LEFT = 50

Procedure Form3.Click()
Public oForm3
oForm3 = Createobject("ModellessForm")
oForm3.Left = 100
oForm3.Show()

Procedure Load()
Define Pad (This.Name) Of (m.Menu_name) Prompt "Активна форма #2" Before P_QUIT

Procedure Unload()
Release Pad (This.Name) Of (m.Menu_Name)

Procedure Activate()
If Type("OFORM3")="O" && Если форма #3 существует - убиваем
Release OFORM3
Endif

Enddefine


Define Class ModellessForm As Form

Caption = " Немодальная дочерняя TopLevel форма #3"
AutoCenter = .T.
WindowType = 0
ShowWindow = 2
Height = 300
Width = 400

Procedure Load()
Define Pad (This.Name) Of (m.Menu_name) Prompt "Активна форма #3" Before P_QUIT

Procedure Unload()
Release Pad (This.Name) Of (m.Menu_Name)

Enddefine


Procedure to_QUIT
** грубо конечно
Clear Wind
Clear Events

ps - если Ваши формы создаются визуально, то Public ссылки на формы
можно получить в методах формы (например в Init) так:

Public Form_Handle
Form_Handle=This
14 ноя 03, 13:10    [418362]     Ответить | Цитировать Сообщить модератору
 Re: Search Path, меню, форма  [new]
Равиль
Member

Откуда: Уфа
Сообщений: 127
Хотел вставить URL - www.foxclub.ru/ph/ получилась лабуда, извините
14 ноя 03, 13:25    [418402]     Ответить | Цитировать Сообщить модератору
 Re: Search Path, меню, форма  [new]
IgorProgrammer
Member

Откуда:
Сообщений: 687
Равиль:

Мне с менюхой надо работать как с объектом...
Я ее имя храню... и при каком-то действии перерисовую часть менюхи...

А насчет форм...
Мне надо что б на клике мыши вне формы 3, но на форме 1 или 2 или 4...
их там много может быть...
А вызывается он из модальной формы, у которой свойство AlwaysOnTop = .T.
14 ноя 03, 16:31    [419025]     Ответить | Цитировать Сообщить модератору
 Re: Search Path, меню, форма  [new]
Равиль
Member

Откуда: Уфа
Сообщений: 127
Игорь:
автор писал:
Мне с менюхой надо работать как с объектом ...

Как я Вас понимаю ... объектные меню и репорт - "но не в этой жизни", хотя некоторые мастерят свои классы, конечно :)
imho в Вашем случае одного имени для меню не достаточно без ссылки на форму, если не так - покажите пример :)
автор писал:
Мне надо что б на клике мыши вне формы 3, но на форме 1 или 2
или 4... их там много может быть...
А вызывается он из модальной формы, у которой свойство AlwaysOnTop = .T.

Вот на Activate этих многих и предлагается гасить форму 3, а AlwaysOnTop зачем - только раздражать пользователей при загрузке Worda-Excelя :)
с/у Равиль :)
14 ноя 03, 19:26    [419398]     Ответить | Цитировать Сообщить модератору
 Re: Search Path, меню, форма  [new]
IgorProgrammer
Member

Откуда:
Сообщений: 687
Равиль:
На одной из форм есть оле-компонент...
Когда я его гашу... то клика на нем не происходит...
Соответственно актив форм пролетает...

Что с этим делать???

с/у Игорь...
17 ноя 03, 13:19    [420788]     Ответить | Цитировать Сообщить модератору
 Re: Search Path, меню, форма  [new]
Равиль
Member

Откуда: Уфа
Сообщений: 127
автор писал:
На одной из форм есть оле-компонент...
Когда я его гашу... то клика на нем не происходит...
Соответственно актив форм пролетает...

:) Вы хотите сказать, что не происходит актив формы при активации оле-компонента, или наоборот оле-компонент находится на "гасимой" форме - не совсем понятен вопрос ... а что за компонент ?
17 ноя 03, 19:59    [421788]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить