TWizard

Overview

TWizard is analogous to the installation wizard commonly used to install software on Windows. It splits a large form and presents the user with a series of smaller forms, called wizard steps, to complete. The following figure shows how a wizard is composed of when presented to users, where step content is the main content of a wizard step for users to complete, header refers to header content common to all steps, navigation contains buttons that allow users to navigate step by step, and side bar contains a list of hyperlinks by which users can reach to any step with one click.

components of wizard

Wizard steps are represented by TWizardStep and are maintained in TWizard through its WizardSteps property. At any time, only one step is visible, which is determined by the ActiveStep property. The ActiveStepIndex property gives the index of the active step in the step collection. Clicking on navigation buttons can activate different wizard steps.

Wizard steps are typically added to a wizard through template as follows,

<com:TWizard> <com:TWizardStep Title="step 1" StepType="Start"> content in step 1, may contain other controls </com:TWizardStep> <com:TWizardStep Title="step 2" StepType="Step"> content in step 2, may contain other controls </com:TWizardStep> <com:TWizardStep Title="finish step" StepType="Finish"> content in finish step, may contain other controls </com:TWizardStep> </com:TWizard>

In the above, StepType refers to the type of a wizard step, which can affect how the navigation appearance and behavior of the step. A wizard step can be of one of the following types:

Using TWizard

A Single-Step Wizard Sample

In this sample, we use wizard to collect user's preference of color. In the first step, the user is presented with a dropdown list from which he can choose hist favorite color. In the second step, the complete step, his choice in the previous step is displayed. In real application, at this step the choice may be stored in database in the backend.

Customizing Wizard Styles

TWizard defines a whole set of properties for customization of its various components as shown in the above figure. In particular, the following properties are provided:

  • Header - HeaderText, HeaderTemplate, HeaderStyle.
  • Step - StepStyle.
  • Navigation - NavigationStyle, StartNavigationTemplate, StepNavigationTemplate, FinishNavigationTemplate, StartNextButtonStyle, StepNextButtonStyle, StepPreviousButtonStyle, FinishPreviousButtonStyle, FinishCompleteButtonStyle, CancelButtonStyle.
  • Side bar - SideBarTemplate, SideBarStyle, SideBarButtonStyle, DisplaySideBar.