powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос про Activate Формы
4 сообщений из 4, страница 1 из 1
Вопрос про Activate Формы
    #33551435
nova
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Объясните мне пожалуста как работает этот метод в форме, для чего он нужен.
Спасибо!
...
Рейтинг: 0 / 0
Вопрос про Activate Формы
    #33551512
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Activate - это не метод, а событие и происходит в

авторИмеет место, когда становится активным объект FormSet, Form или Page или когда отображается объект Toolbar.

Применение

Form, FormSet, Page, ToolBar

Синтаксис

PROCEDURE Object.Activate

Комментарии

Триггеры для данного события зависят от типа объекта.

· Объект FormSet активизируется, когда какой-либо из принадлежащих ему объектов Form получает фокус или когда вызывается метод Show для объекта FormSet.
· Объект Form активизируется пользователем, когда он, например, выбирает этот объект или его элемент управления или когда вызывается метод Show для объекта Form.
· Объект Page активизируется пользователем, когда он, например, щелкает мышью вкладку объекта или содержащийся в нем элемент управления или когда свойству ActivePage содержащего данную страницу объекта PageFrame присваивается номер страницы.
· Объект ToolBar активизируется, когда вызывается метод Show для этого объекта.

Если вы используете метод Show для объекта FormSet, будут показаны все содержащиеся в нем объекты Form, у которых свойство Visible установлено равным "истине" (.T.). Событие Activate происходит сначала для FormSet, потом для Form, а затем для Page.

Нужность его проявляется, например:

Вы имеете управляющий тулбар ( с кнопками: новый - редактировать - сохранить - откатить изменения - итп, причём в первоначальный момент они не доступны Enable = .f.), вызываете форму в которой хотите что-то отредактировать, что надо сделать с кнопками тулбара (новый - редактировать - поставить Enable = .t., сохранить - откатить изменения - поставить Enable = .f.)/

Теперь жмем копку редактировать - состояние тулбара (новый - редактировать - Enable = .f., сохранить - откатить изменения - поставить Enable = .t.)

В этот момент Вы вызываете другую форму не закрывая первую у которой состояние тулбара равно состоянию первой формы, значит нам надо перерисовать тулбар для активной формы (новый - редактировать - поставить Enable = .t., сохранить - откатить изменения - поставить Enable = .f.)

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

Вот пример использования события Activate.
...
Рейтинг: 0 / 0
Вопрос про Activate Формы
    #33551555
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не метод. Это событие.

Отличие метода от события в том, что выполнене кода события происходит автоматически при наступлении некоего события. А код метода всегда вызывается исключительно "вручную". Хотя, разумеется, код события тоже можно вызвать "вручную", но это не приведет к автоматическому выполнению соответствующего события.

Т.е. событие Activate() автоматически выполняется в тот момент, когда данная форма становиться активной. Никакие действия в этом событии не могут отменить активизиацию формы. Это просто место, где можно написать дополнительный код, который должен выполняться каждый раз при активизации формы.

Активизация формы - это не есть получение фокуса. Это некий процесс, после которого ввод/вывод информации по-умолчанию станет происходить именно в указанную форму. Причем фокус может находится в этот момент где угодно. Даже в другой форме. Сама форма может вообще быть невидимой, но тем не менее активной.

Соответственно, противоположное событие - это DeActivate(). У нее логика абсолютно такая же. Срабатывает в тот момент, когда форма становиться не активной. Никакие действия в этом событии не могут отменить деактивацию формы.

Причем, следует понимать, что уничтожение формы (Release()) не вызвывает срабатывание события деактивации.

Событие деактивации формы происходит только и исключительно в тот момент, когда активизируется другая форма.
...
Рейтинг: 0 / 0
Вопрос про Activate Формы
    #33552127
Фотография FoxLamer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я использую это событие для отслеживания активности пользователей.
В метод activate прародителя всех моих форм я вставляю процедурку, которая записывает в таблицу на сервер текущее сосояние программы. И администратор в любой момент видит кто из них чем занимается;)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вопрос про Activate Формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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