TPageManager Component

Unit
PageMngr

Description
Компонента предназначена для использования при написании многостраничных диалогов ("экспертов").
Сама компонента страниц не имеет. Она имеет ссылку на компоненту — владельца страниц (свойство PageOwner). Для управления порядком следования страниц существуют события OnGetNextPage и OnGetPriorPage. Управление событиями, происходящими при смене страниц, осуществляется с помощью "заместителей" страниц, список которых содержит свойство PageProxies. Каждый элемент имеет тип TPageProxy, и имеет события OnEnter, OnShow, OnHide и OnLeave.

Методы NextPage и PriorPage могут вызываться Вами прямо, либо автоматически компонентой TPageManager при нажатии на кнопки, заданные свойствами NextBtn и PriorBtn.



Declaration
property PageOwner: TPageOwner;

Description
Ссылка на компоненту — владельца страниц. В данной версии может быть только TNotebook.



Declaration
property OnGetNextPage: TPageRequestEvent;

Description
В обработчике этого события Вы должны указать какая страница является следующей. Вы дожны присвоить индекс этой страницы переменной NewPage. -1 означает запрет перехода на следующую страницу.



Declaration
type
TPageRequestEvent = procedure(CurrentPage: Integer; var NewPage: Integer) of object;
Description
Событие запроса на порядок следования страниц компоненты TPageManager.



Declaration
property OnGetPriorPage: TPageRequestEvent;

Description
В обработчике этого события Вы должны указать какая страница является предыдущей. Вы дожны присвоить индекс этой страницы переменной NewPage. -1 означает запрет перехода на предыдущую страницу.



Declaration
property PageProxies: TList;

Description
Список "заместителей" страниц. Необходим для обработки событий, происходящих при смене страниц.



Declaration
property OnEnter: TPageNotifyEvent;

Description
Происходит перед тем, как данная страница станет активной.
Параметр Next сообщает в каком направлении происходит изменение страницы. True означает переход к следующей, False — к предыдущей.



Declaration
property OnShow: TPageNotifyEvent;

Description
Происходит после того, как данная страница стала активной.
Параметр Next сообщает в каком направлении произошло изменение страницы. True означает переход к следующей, False — к предыдущей.



Declaration
property OnHide: TPageNotifyEvent;

Description
Происходит после того, как данная страница перестала быть активной.
Параметр Next сообщает в каком направлении произошло изменение страницы. True означает переход к следующей, False — к предыдущей.



Declaration
procedure NextPage;

Description
Осуществить переход на следующую страницу. "Cледующая" страница определяется с помощью события OnGetNextPage.
Может вызываться при нажатии на кнопку "Дальше" и т.п.



Declaration
procedure PriorPage;

Description
Осуществить переход на предыдущую страницу. Какая страница является предыдущей определяется с помощью события OnGetPriorPage.
Может вызываться при нажатии на кнопку Назад и т.п.



Declaration
property NextBtn: TControl;

Description
Свойство определяет элемент управления — кнопку, при нажатии на которую (вызове метода Click) будет осуществляться переход на "следующую" страницу "ассистента".
При задании свойств NextBtn и PriorBtn компонента TPageManager следит за их запрещением и разрешением (управляет свойством Enabled). Вы можете обработать событие OnCheckButtons для переопределения поведения по умолчанию.



Declaration
property PriorBtn: TControl;

Description
Свойство определяет элемент управления — кнопку, при нажатии на которую (вызове метода Click) будет осуществляться переход на "предыдущую" страницу "ассистента".
При задании свойств NextBtn и PriorBtn компонента TPageManager следит за их запрещением и разрешением (управляет свойством Enabled). Вы можете обработать событие OnCheckButtons для переопределения поведения по умолчанию.



Purpose
Компонента предназначена для использования при написании многостраничных диалогов ("экспертов").
Tasks
Необходимо связать компоненту с элементом управления, владельцем страниц, установив свойство PageOwner. В данной версии таким элементом могут быть только компоненты класса TNotebook.
Методы NextPage и PriorPage должны вызываться для навигации по страницам.

Порядок страниц определяется с помощью событий OnGetNextPage и OnGetPriorPage.
Каждая страница через "посредника" — класса TPageProxy — может иметь набор событий, происходящих при переходи со страницы на страницу.