德尔福& JVCL - JvWizard,页面在运行时添加

时间:2009-09-06 19:51:30

标签: delphi jvcl

我需要在运行时向TJvWizard添加页面(页面可能由插件注册)。我尝试将它添加到JvWizard.Pages,但它似乎不是有效的方式 - 我需要插入页面作为倒数第二页...

我尝试了代码

AddWizardPage(APage: TJvWizardCustomPage);
begin
if APage <> nil then
  begin
    Apage.Wizard:=JvWizard1;
    JvWizard1.Pages.Insert(JvWizard1.Pages.Count - 1 , APage);
    JvWizardRouteMapNodes1.Invalidate;
  end;
end;

但它被添加为RouteMap的最后一页,并在启动时显示为第一页...

提前感谢!

1 个答案:

答案 0 :(得分:3)

您必须将Page.Wizard属性设置为向导组件,而不是调用Pages.Insert。这将设置父级并插入页面。

procedure TForm1.FormCreate(Sender: TObject);
var
  Page: TJvWizardCustomPage;
begin
  Page := TJvWizardWelcomePage.Create(Self);
  Page.Wizard := JvWizard1;

  JvWizard1.ActivePage := Page;
end;