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

Откуда: Россия г. Тирасполь
Сообщений: 140
Вообщем столкнулся с такой проблемой - пишу сетевую версию проги "складской учет" и есть такой момент, что надо блокировать некоторые пункты меню на всех компах где открыта прога при определенных условиях. Если кто знаем как подскажите все варианты, я это сделал через таймер и таблицу, но не очень устраивает!!! Заранее спасибо.
13 авг 07, 14:48    [4517020]     Ответить | Цитировать Сообщить модератору
 Re: Сеть и меню  [new]
StandD
Member

Откуда:
Сообщений: 519


К сообщению приложен файл. Размер - 0Kb
13 авг 07, 15:22    [4517348]     Ответить | Цитировать Сообщить модератору
 Re: Сеть и меню  [new]
johngorn
Member

Откуда: Россия г. Тирасполь
Сообщений: 140
Я же написал, что я это сделал через таймер и таблицу, и само собой, "SKIP FOR" в этом деле учавствовал, я просил подсказать мне более нормальные варианты решения этой проблемы!!!
13 авг 07, 15:47    [4517576]     Ответить | Цитировать Сообщить модератору
 Re: Сеть и меню  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
Если в SKIP FOR указана функция, то эта функция будет вычисляться каждый раз при попытке отрисовать (раскрыть) соответсвующий пункт меню. Т.е. таймер здесь вообще не нужен.

Что в Вашем понимании является "более нормальным"?
13 авг 07, 17:03    [4518280]     Ответить | Цитировать Сообщить модератору
 Re: Сеть и меню  [new]
johngorn
Member

Откуда: Россия г. Тирасполь
Сообщений: 140
Я использую таймер для сетевой версии, у меня загружено несколько клиентских программ на разных машинах и через таймер я в переменную из таблицы присваиваю значение, а сама переменная уже находится в Skip For, а вот как это обойти я пока не придумал...
13 авг 07, 17:32    [4518507]     Ответить | Цитировать Сообщить модератору
 Re: Сеть и меню  [new]
проходящий.
Guest
Как уже было напИсано, таймер тут никаким боком не нужен. Нужна процедура/функция, вычисляющая значение упомянутой переменной. Не по таймеру выислять, а когда в этом возникнет необходимость.
13 авг 07, 17:51    [4518673]     Ответить | Цитировать Сообщить модератору
 Re: Сеть и меню  [new]
johngorn
Member

Откуда: Россия г. Тирасполь
Сообщений: 140
Хорошо скажу немного подругому, как обойтись без привязке SKIP FOR к таблице, ведь одну и туже ведь переменную нельзя видеть на разных компах в одной области данных???
13 авг 07, 18:01    [4518785]     Ответить | Цитировать Сообщить модератору
 Re: Сеть и меню  [new]
проходящий.
Guest
У Вас какое-то очень неправильное мнение о работе меню.
Ваша переменная вычисляется на основании данных в таблице? Ведь сейчас она как-то вычисляется? В Вашем таймере. Так? Ну так просто это вычисление вынести из таймера. Без Skip for не обойтись и непонятно чем он Вам так помешал? Он как раз и организовывает вызов вычисления именно в нужный момент.
13 авг 07, 18:16    [4518890]     Ответить | Цитировать Сообщить модератору
 Re: Сеть и меню  [new]
johngorn
Member

Откуда: Россия г. Тирасполь
Сообщений: 140
Я понимаю , что без него не обойтись , но дело в том, что когда я Skip For присваиваю значение из таблице , то данные без таймера не обновляются, т.е. если я на одной машиен выйду из формы, то на другой менюшка на открытие этой формы не активизируется.
13 авг 07, 18:22    [4518924]     Ответить | Цитировать Сообщить модератору
 Re: Сеть и меню  [new]
Dag
Guest
Если бы Вы уточнили, что означает "момент, что надо блокировать некоторые пункты меню на всех компах где открыта прога при определенных условиях" , то может форумчанам будет легче подсказать решение.
13 авг 07, 19:00    [4519084]     Ответить | Цитировать Сообщить модератору
 Re: Сеть и меню  [new]
johngorn
Member

Откуда: Россия г. Тирасполь
Сообщений: 140
Задача состоит в том, что надо блокировать определенные пункты меню при открытии определенных форм, и причем делать это на всех компах где открыто приложение...
13 авг 07, 19:06    [4519109]     Ответить | Цитировать Сообщить модератору
 Re: Сеть и меню  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
В SKIP FOR надо так прямо и написать вызов своей функции

SKIP FOR MyFuncCheck()

А уже в функции MyFuncCheck() выполнять весь нужный анализ и возвращать .T. или .F. в зависимости от результата анализа.

Skip FOR будет вычисляться каждый раз при попытке раскрыть выпадающее POPUP-меню в пункте которого оно и прописано.

Активная в данный момент форма определяется через _SCREEN.ActiveForm. Если нет активных форм, то эта ссылка вернет NULL.

Но у Вас более простая задача: Блокировать пункт меню в момент активизации формы.

Так почему бы не поручить эту задачу самой форме? В событии Activate - блокировать пункты, а в событии Deactivate и Unload - разблокировать.

Да, "вешать" SKIP FOR на пункты главной линейки меню - не рекомендуется. Эти пункты всегда должны быть доступны. Лучше их создавать/удалять при активизации обслуживаемых ими форм.
13 авг 07, 19:56    [4519232]     Ответить | Цитировать Сообщить модератору
 Re: Сеть и меню  [new]
johngorn
Member

Откуда: Россия г. Тирасполь
Сообщений: 140
Ясно спасибо, но вся соль и заключается в блокировке главных пунктов меню...
13 авг 07, 20:26    [4519300]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить