Страницы

среда, 31 декабря 2008 г.

Создание wizarda в Delphi с помощью JVCL. Описание закладки JvWizard.

Компоненты Jv WIzard в Дельфи 2009В бесплатной библиотеке компонентов JVCL есть  контролы, позволяющие быстро соорудить свой интерфейс a la Wizard.

Это 4 компонента: TjvWizard – собственно сам wizard и TjvWizardRouteMapSteps, TJvWizardRouteMapNodes, TjvWizardRouteMapList предназначенные для отображения “карты” wizarda.

Компонент TjvWizard является базой для построения “волшебника”. По структуре TjvWizard очень похож на TPageControl. Он содержит список страниц wizarda(наследников от TJvWizardCustomPage) и общие настройки wizard-a: размеры панели с кнопками, размеры кнопок, заголовки(Caption) кнопок(Next, Back), картинки(glyph), ModalResult кнопок(актуально для кнопок Cancel и Finish), обработчики событий. TJvWizard содержит 7 предопределённых кнопки: Back, Next, To first page, To last page, Cancel, Finish и Help. Можно добавлять и свои.

Так выглядит компонент TJvWizard, c активной страницей Welcome page:

 JVCL Wizard интерфейс в Дельфи

Компоненты карты wizarda. Слева направо: TjvWizardRouteMapSteps, TjvWizardRouteMapList, TJvWizardRouteMapNodes. Содержимое автоматически генерируется на основании списка страниц Wizarda. Одновременно wizard может работать только с одной картой.

Карта wizarda в JVCL, Delphi

Каждая страница wizard-а состоит из следующих областей:

  1. Header – заголовок страницы , состоящего из Title и Subtitle. Для Title и Subtitle можно указать параметры шрифта, цвета, картинку.
  2. Panel – эта область предоставлена программисту.
  3. JvWizardWelcomePage помимо прочего содержит ещё область Watermark(синий прямоугольник на верхней картинке)

Для каждой области можно указать видимость, цвет заливки, изображение.

Видимость и доступность(свойство enabled) кнопок задаётся индивидуально в настройках каждой страницы.

Interior page с открытым Popup меню в IDE в режиме дизайнаСоздание страниц wizard-a в Delphi

В остальном там всё достаточно тривиально, и разобраться что к чему ни составит труда.

Как это выглядит в программе. Пример.

Вот снимки экрана трёхстраничного wizard-a. Использованы цвета по умолчанию. В качестве карты используется TjvWizardRouteMapSteps.

Jv Wizard в программе планирования мероприятий. Страница один. 

Jv Wizard в программе планирования мероприятий. Вторая страница.

Jv Wizard в программе планирования мероприятий. Последняя страница. 

Ссылки по теме

4 комментария:

  1. Hi! Спасибо за статью.
    Не подскажешь как обновить TjvWizardRouteMapList
    при заполнении TjvWizard страницами программно? Из среды работает, а при программном заполнении МапЛист не обновляет свой список.
    Спасибо.

    ОтветитьУдалить
  2. Как добавить страницу в Wizard программно:

    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
    tmpPage: TJvWizardWelcomePage;
    begin
    tmpPage:= TJvWizardWelcomePage.Create(JvWizard1);
    tmpPage.Wizard:=JvWizard1;
    end;

    p.s. ключевая строка tmpPage.Wizard:=JvWizard1;

    ОтветитьУдалить
  3. Спасибо.
    Все просто и даже можно сказать явно.
    а я делал так
    zWizard.Pages.Add(TJvWizardInteriorPage.Create(zWizard));
    zWizard.Pages[i].Parent := zWizard;

    таким способом ее можно было листать кнопками "Back/Next", но в маплисте ее не было.

    ОтветитьУдалить
  4. Я когда пытался повторить, делал точно также. А потом посмотрел исходники и понял как нужно. =))

    ОтветитьУдалить