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

Откуда:
Сообщений: 148
Добрый день всем!

Сделал менюшку в главном окне Фокса с замещением стандартного меню.
Все формы имели свойства ShowWindow=0 (InScreen)
Всё работает!

Как только я претащил менюшку в одну из форм, и назначил этой форме и другим которые вызываются из неё: ShowWindow=2 (As Top-Level Form) и скрыл главное окно фокса- (screen=off) в config.fpw
Другие формы перестали интерактивно реагировать на события первой формы

vfp9
18 дек 08, 11:37    [6587856]     Ответить | Цитировать Сообщить модератору
 Re: Формы перестали реагировать  [new]
Galyamov Rinat
Member

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

Менюшка в одном окне. Она не знает про другие окна.

Либо в первой форме сделай некие функции, которые будешь передергивать с
меню и уже в них проверять существет ли окно, если существует , то ...

Либо в остальных окнах сделай не as top level? а in top level


Posted via ActualForum NNTP Server 1.4

18 дек 08, 12:07    [6588122]     Ответить | Цитировать Сообщить модератору
 Re: Формы перестали реагировать  [new]
FAM
Member

Откуда:
Сообщений: 361
Tohan_ORA,

Есть такой простой метод: регистрировать все формы в массиве. Варианты регистрации самые разные (все формы приложения, регистрация при открытии-закрытии,открытие всех форм в скрытом состоянии и регистрация всех объектов в массиве....)

Во всяком случае такой подход позволяет легко работать с формами, в т.ч. и посредством менюшки в форме.
18 дек 08, 14:24    [6589160]     Ответить | Цитировать Сообщить модератору
 Re: Формы перестали реагировать  [new]
Galyamov Rinat
Member

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

> Автор: FAM
> Tohan_ORA,
>
> Есть такой простой метод: регистрировать все формы в массиве.
> Варианты регистрации самые разные (все формы приложения, регистрация при
> открытии-закрытии,открытие всех форм в скрытом состоянии и регистрация
> всех объектов в массиве....)

Если речь идет о регистрации форм, то чем не устраивает _Screen.forms ?


Posted via ActualForum NNTP Server 1.4

18 дек 08, 14:28    [6589185]     Ответить | Цитировать Сообщить модератору
 Re: Формы перестали реагировать  [new]
FAM
Member

Откуда:
Сообщений: 361
Galyamov Rinat

> Автор: FAM
> Tohan_ORA,
>
...Если речь идет о регистрации форм, то чем не устраивает _Screen.forms ?




Да, согласен - хороший и более стандартный вариант, но мне как-то не так привычно и удобно. А результат тот-же. Если есть _Screen. Но он есть не всегда.
19 дек 08, 10:54    [6592915]     Ответить | Цитировать Сообщить модератору
 Re: Формы перестали реагировать  [new]
ВладимирМ
Member

Откуда: г. Москва
Сообщений: 7864
FAM
Galyamov Rinat

> Автор: FAM
> Tohan_ORA,
>
...Если речь идет о регистрации форм, то чем не устраивает _Screen.forms ?

Да, согласен - хороший и более стандартный вариант, но мне как-то не так привычно и удобно. А результат тот-же. Если есть _Screen. Но он есть не всегда.


_SCREEN есть всегда. Другое дело, что он не всегда отображается. Но физически он все-равно есть. Как следствие, всегда есть массив форм _SCREEN.Forms() и его "дубль" _VFP.Forms()

Однако недостатком использования _SCREEN.Forms() является его "закрытость". В него невозможно добавить/удалить какие-то свои настройки/методы касающиеся обслуживания списка форм. Поэтому обычно делают спецальный класс-диспетчер по обслуживанию всех открытых форм.

Кроме того, _SCREEN.Forms() имеет вполне определенные критерии того, что считать формой. Например, если используется FormSet, то _Screen.Forms() покажет не сам FormSet (поскольку это не есть форма), а именно включенные в него формы. Что не очень-то удобно. Есть и другие проблемы.

Поэтому, в этом дополнительном классе-диспетчере заводят собственный массив, отслеживающий открытые в данный момент формы. И под термином "формы" в этом массиве понимают то, что нужно в данной конкретной задаче. Это могут быть и не "настоящие" формы.
19 дек 08, 11:56    [6593564]     Ответить | Цитировать Сообщить модератору
 Re: Формы перестали реагировать  [new]
Tohan_ORA
Member

Откуда:
Сообщений: 148
Спасибо всем ответившим!
Видимо проблема в идеологии построения приложения, псоле того как свободным формам было переназначенно свойство ap-top-level перестала срабатывать задержка(read events) в одной из форм и шло сквозняком далее- а там форма была модальной.
24 дек 08, 13:39    [6613410]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить