|
|
|
Вопрос про Activate Формы
|
|||
|---|---|---|---|
|
#18+
Добрый день! Объясните мне пожалуста как работает этот метод в форме, для чего он нужен. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 12:00 |
|
||
|
Вопрос про Activate Формы
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 12:15 |
|
||
|
Вопрос про Activate Формы
|
|||
|---|---|---|---|
|
#18+
Это не метод. Это событие. Отличие метода от события в том, что выполнене кода события происходит автоматически при наступлении некоего события. А код метода всегда вызывается исключительно "вручную". Хотя, разумеется, код события тоже можно вызвать "вручную", но это не приведет к автоматическому выполнению соответствующего события. Т.е. событие Activate() автоматически выполняется в тот момент, когда данная форма становиться активной. Никакие действия в этом событии не могут отменить активизиацию формы. Это просто место, где можно написать дополнительный код, который должен выполняться каждый раз при активизации формы. Активизация формы - это не есть получение фокуса. Это некий процесс, после которого ввод/вывод информации по-умолчанию станет происходить именно в указанную форму. Причем фокус может находится в этот момент где угодно. Даже в другой форме. Сама форма может вообще быть невидимой, но тем не менее активной. Соответственно, противоположное событие - это DeActivate(). У нее логика абсолютно такая же. Срабатывает в тот момент, когда форма становиться не активной. Никакие действия в этом событии не могут отменить деактивацию формы. Причем, следует понимать, что уничтожение формы (Release()) не вызвывает срабатывание события деактивации. Событие деактивации формы происходит только и исключительно в тот момент, когда активизируется другая форма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 12:23 |
|
||
|
Вопрос про Activate Формы
|
|||
|---|---|---|---|
|
#18+
Я использую это событие для отслеживания активности пользователей. В метод activate прародителя всех моих форм я вставляю процедурку, которая записывает в таблицу на сервер текущее сосояние программы. И администратор в любой момент видит кто из них чем занимается;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2006, 14:13 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=274&tid=1592323]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 353ms |

| 0 / 0 |
