Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / метод show() / 13 сообщений из 13, страница 1 из 1
11.10.2012, 14:52
    #37993825
gore-egor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
метод show()
Здравствуйте. вот такой вопрос:
зачем нужен метод формы Show(), если
такого события вроде как нет?
...
Рейтинг: 0 / 0
11.10.2012, 15:19
    #37993901
IgorNG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
метод show()
gore-egor,

Отображает форму и определяет - будет она модальной или нет.

[FormSet.]Object.Show([nStyle])
...
Рейтинг: 0 / 0
11.10.2012, 15:23
    #37993918
gore-egor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
метод show()
IgorNGgore-egor,

Отображает форму и определяет - будет она модальной или нет.

[FormSet.]Object.Show([nStyle])а разве это нельзя сделать раньше,
в дизайнере или при создании формы "руками"?
...
Рейтинг: 0 / 0
11.10.2012, 15:58
    #37994016
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
метод show()
gore-egorа разве это нельзя сделать раньше,
в дизайнере или при создании формы "руками"?
можно, это для тех кому надо позже, в момент запуска, решить модально открыть или нет.
...
Рейтинг: 0 / 0
11.10.2012, 16:18
    #37994062
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
метод show()
Форма может быть создана двумя способами

1. Файл с расширением SCX. В файле проекте - объект форма
2. Файл с расширением VCX. В файле проекта - класс внутри библиотеки классов

Если форма создана как файл с расширением SCX, то она запускается на выполнение командой вида

Код: sql
1.
DO FORM MyForm.scx


В этом случае метод Show() вызывается автоматически и явным образом его вызывать не требуется.

Если форма создана как класс в библиотеке классов, то она запускается на выполнение командой вида

Код: sql
1.
2.
3.
SET CLASSLIB TO MyClass.VCX
oForm = CreateObject('MyForm')
oForm.Show()


Все объекты FoxPro, которые создаются на основании классов, по умолчанию, не видимы. Чтобы сделать их видимыми и используется метод Show(). Кроме того, метод Show() делает форму активной

Впрочем, можно, конечно, сделать настройку

Код: sql
1.
oForm.Visible = .T.



только в этом случае форма останется не активной. Надо будет дополнительно ткнуть в нее мышкой, чтобы активизировать.

Следует еще иметь в виду, что в FoxPro есть такой объект-контейнер как FormSet (набор форм). Как правило, формы внутри FormSet при нажатии на крестик в правом верхнем углу не удаляют, а скрывают. Для скрытых форм метод Show() можно использовать для отображения формы.
...
Рейтинг: 0 / 0
11.10.2012, 18:31
    #37994339
gore-egor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
метод show()
ВладимирМ,

большое спасибо!
можно еще вопрос: если показывать форму
командой show window myform,
происходит событие activate, хотя в хелпе
написано, что команда show окно не активирует?
...
Рейтинг: 0 / 0
11.10.2012, 20:02
    #37994458
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
метод show()
Почему же, однозначно написано, что метод Show() форму активирует. Читайте в конце статьи справки в разделе Remarks

HELP VFP9 Show MethodThe Show method sets a form or form set's Visible property to true (.T.) and makes the form the active object . If a form's Visible property is already set to true (.T.), the Show method makes it the active object .
HELP VFP9 Метод ShowМетод Show устанавливает свойство Visible формы или набора форм в значение true (.T.) и делает форму активным объектом . Если свойство Visible формы уже установлено в true (.T.), то метод Show делает ее активным объектом .
Ну, а активация формы автоматически вызывает срабатывание события Activate(), на которое есть ссылка в той же статье Help в разделе See Also (это в самом конце).

Если пойти в статью по событию Activate(), то и там сказано

HELP VFP9 Activate EventTriggers for this event depend on the type of object:

A Form object is activated by a user action, such as clicking a form or a control or when the Show method for the Form object is called .
...
Рейтинг: 0 / 0
11.10.2012, 20:14
    #37994471
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
метод show()
Извините, не понял, что Вы про команду Show Window.

Здесь проблема в терминологии. У окна есть два свойства: Activate и Output. Т.е. окно может быть активно, но не являтся окном, в который направлен вывод информации. Так вот, Show Window делает окно Activate, но не делает окно Output. В смысле, окно становится активным (как правило, это сопровождается перемещением окна на передний план), но не перенаправляет в него вывод информации. Т.е. нажатие кнопок будет по прежнему перехватывать другое окно.

PS: Не стоит без серьезной необходимости в VFP использовать команду Show Window. Лучше все-таки найти ссылку на форму и выполнить метод формы.
...
Рейтинг: 0 / 0
12.10.2012, 06:12
    #37994811
gore-egor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
метод show()
ВладимирМ,

спасибо за подробный ответ

ВладимирМНе стоит без серьезной необходимости в VFP использовать команду Show Window. Лучше все-таки найти ссылку на форму и выполнить метод формы.форма мне нужна, чтобы показать доп. инф-ю,
которой нет в гриде.
по клику на строке форма выводится,
по второму прячется.
вот и все. show-hide window хватает.
еще раз спасибо.
...
Рейтинг: 0 / 0
12.10.2012, 06:54
    #37994824
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
метод show()
gore-egorВладимирМ,

спасибо за подробный ответ

ВладимирМНе стоит без серьезной необходимости в VFP использовать команду Show Window. Лучше все-таки найти ссылку на форму и выполнить метод формы.форма мне нужна, чтобы показать доп. инф-ю,
которой нет в гриде.
по клику на строке форма выводится,
по второму прячется.
вот и все. show-hide window хватает.
еще раз спасибо.
SHOW WINDOW наследие FPD где был совсем другой подход к построению интерфейса. В VFP оставлена для совместимости, поэтому не надо ее использовать. Есть более эффективные методы. Как уже сказал Владимир - получаешь ссылку на форму и меняешь свойство Visible, тоже самое что твое show-hide
...
Рейтинг: 0 / 0
12.10.2012, 11:47
    #37995261
gore-egor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
метод show()
Dima TЕсть более эффективные методы. Как уже сказал Владимир - получаешь ссылку на форму и меняешь свойство Visibleсделал через ссылку - все норма, только не свойство
Visible надо менять, а использовать методы show() и hide(),
иначе при второй попытке форму уже не увидишь
с ее Visible=.F. )))
Dima TSHOW WINDOW наследие FPD где был совсем другой подход к построению интерфейса. В VFP оставлена для совместимости, поэтому не надо ее использовать.если это хорошее наследие,
то почему нельзя использовать?
...
Рейтинг: 0 / 0
12.10.2012, 13:12
    #37995476
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
метод show()
gore-egorDima TЕсть более эффективные методы. Как уже сказал Владимир - получаешь ссылку на форму и меняешь свойство Visibleсделал через ссылку - все норма, только не свойство
Visible надо менять, а использовать методы show() и hide(),
иначе при второй попытке форму уже не увидишь
с ее Visible=.F. )))
Visible=.T. не пробовал?
gore-egorDima TSHOW WINDOW наследие FPD где был совсем другой подход к построению интерфейса. В VFP оставлена для совместимости, поэтому не надо ее использовать.если это хорошее наследие,
то почему нельзя использовать?
Ничего хорошего в обращении по имени нет. Потребуется тебе сделать два одинаковых окна и рулить ими по отдельности. И надо будет извращаться. А так хоть сто однотипных форм создавай, сохранил ссылку на нужную и управляй именно ей.
...
Рейтинг: 0 / 0
12.10.2012, 14:27
    #37995687
gore-egor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
метод show()
Dima T,

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


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