Inno setup 我需要inno设置自定义页面中的帮助

Inno setup 我需要inno设置自定义页面中的帮助,inno-setup,Inno Setup,在Inno设置中,我创建了一个带有以下代码的自定义页面,其中有3个文本框 现在我想验证自定义表单上的文本框“下一步”按钮。如果用户在text.text='2121212'中输入了文本,则仅启用“下一步”按钮 [CustomMessages] CustomForm_Caption=CustomForm Caption CustomForm_Description=CustomForm Description CustomForm_Label1_Caption0=College Name: Cust

在Inno设置中,我创建了一个带有以下代码的自定义页面,其中有3个文本框

现在我想验证自定义表单上的文本框“下一步”按钮。如果用户在text.text='2121212'中输入了文本,则仅启用“下一步”按钮

[CustomMessages]
CustomForm_Caption=CustomForm Caption
CustomForm_Description=CustomForm Description
CustomForm_Label1_Caption0=College Name:
CustomForm_Label2_Caption0=Product Type:
CustomForm_Label3_Caption0=Product ID:

[Code]
var
  Label1: TLabel;
  Label2: TLabel;
  Label3: TLabel;
  Edit1: TEdit;
  Edit2: TEdit;
  Edit3: TEdit;
  Edit4: TEdit;
  Edit5: TEdit;
  Edit6: TEdit;

{ CustomForm_Activate }

procedure CustomForm_Activate(Page: TWizardPage);
begin
  // enter code here...


end;

{ CustomForm_ShouldSkipPage }

function CustomForm_ShouldSkipPage(Page: TWizardPage): Boolean;
begin
  Result := False;
end;

{ CustomForm_BackButtonClick }

function CustomForm_BackButtonClick(Page: TWizardPage): Boolean;
begin
  Result := True;
end;

{ CustomForm_NextkButtonClick }

function CustomForm_NextButtonClick(Page: TWizardPage): Boolean;
begin
  RegWriteStringValue(HKEY_LOCAL_MACHINE, 'Software\SGS2.2\CS',
    'College Name', Edit1.Text);
   RegWriteStringValue(HKEY_LOCAL_MACHINE, 'Software\SGS2.2\CS',
    'Product Type', Edit2.Text);
    RegWriteStringValue(HKEY_LOCAL_MACHINE, 'Software\SGS2.2\CS',
    'Product ID', Edit3.Text);
  Result := True;
   end;

{ CustomForm_CancelButtonClick }

procedure CustomForm_CancelButtonClick(Page: TWizardPage; var Cancel, Confirm: Boolean);
begin
  // enter code here...
end;

{ CustomForm_CreatePage }

function CustomForm_CreatePage(PreviousPageId: Integer): Integer;
var
  Page: TWizardPage;
begin
  Page := CreateCustomPage(
    PreviousPageId,
    ExpandConstant('{cm:CustomForm_Caption}'),
    ExpandConstant('{cm:CustomForm_Description}')
  );

{ Label1 }
  Label1 := TLabel.Create(Page);
  with Label1 do
  begin
    Parent := Page.Surface;
    Caption := ExpandConstant('{cm:CustomForm_Label1_Caption0}');
    Left := ScaleX(16);
    Top := ScaleY(24);
    Width := ScaleX(70);
    Height := ScaleY(13);
  end;

  { Label2 }
  Label2 := TLabel.Create(Page);
  with Label2 do
  begin
    Parent := Page.Surface;
    Caption := ExpandConstant('{cm:CustomForm_Label2_Caption0}');
    Left := ScaleX(17);
    Top := ScaleY(56);
    Width := ScaleX(70);
    Height := ScaleY(13);
  end;

  { Label3 }
  Label3 := TLabel.Create(Page);
  with Label3 do
  begin
    Parent := Page.Surface;
    Caption := ExpandConstant('{cm:CustomForm_Label3_Caption0}');
    Left := ScaleX(17);
    Top := ScaleY(88);
    Width := ScaleX(70);
    Height := ScaleY(13);
  end;

  { Edit1 }
  Edit1 := TEdit.Create(Page);
  with Edit1 do
  begin
    Parent := Page.Surface;
    Left := ScaleX(115);
    Top := ScaleY(24);
    Width := ScaleX(273);
    Height := ScaleY(21);
    TabOrder := 0;
  end;

  { Edit2 }
  Edit2 := TEdit.Create(Page);
  with Edit2 do
  begin
    Parent := Page.Surface;
    Left := ScaleX(115);
    Top := ScaleY(56);
    Width := ScaleX(273);
    Height := ScaleY(21);
    TabOrder := 1;
  end;

  { Edit3 }
  Edit3 := TEdit.Create(Page);
  with Edit3 do
  begin
    Parent := Page.Surface;
    Left := ScaleX(115);
    Top := ScaleY(88);
    Width := ScaleX(273);
    Height := ScaleY(21);
    TabOrder := 2;
  end;

  with Page do
  begin
    OnActivate := @CustomForm_Activate;
    OnShouldSkipPage := @CustomForm_ShouldSkipPage;
    OnBackButtonClick := @CustomForm_BackButtonClick;
    OnNextButtonClick := @CustomForm_NextButtonClick;
    OnCancelButtonClick := @CustomForm_CancelButtonClick;
  end;

  Result := Page.ID;
end;

{ CustomForm_InitializeWizard }

procedure InitializeWizard();
begin

  CustomForm_CreatePage(wpWelcome);

end;

这应该让你开始:

    ; -- CodeDlg.iss --
    ;
    ; This script shows how to insert custom wizard pages into Setup and how to handle
    ; these pages. Furthermore it shows how to 'communicate' between the [Code] section
    ; and the regular Inno Setup sections using {code:...} constants. Finally it shows
    ; how to customize the settings text on the 'Ready To Install' page.

    [Setup]
    AppName=My Program
    AppVerName=My Program version 1.5
    DefaultDirName={pf}\My Program
    DisableProgramGroupPage = yes
    UninstallDisplayIcon={app}\MyProg.exe
    OutputDir=userdocs:Inno Setup Examples Output

    [Files]
    Source: "MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion

    [CustomMessages]
    CustomForm_Caption=CustomForm Caption
    CustomForm_Description=CustomForm Description
    CustomForm_Label1_Caption0=College Name:
    CustomForm_Label2_Caption0=Product Type:
    CustomForm_Label3_Caption0=Product ID:

    [Code]
    Var
    Page: TWizardPage;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;

    procedure  EdtOnChange (Sender: TObject);
    Var
    MyEdit : TEdit;
    begin
    MyEdit := TEdit(Sender);
    if MyEdit.Text = '2121212' then
      WizardForm.NextButton.Enabled := true
    Else
      WizardForm.NextButton.Enabled := false;
    end;


    procedure InitializeWizard;
    Var
      CheckBox: TCheckBox;
    begin
      Page := CreateCustomPage( wpWelcome, ExpandConstant('{cm:CustomForm_Caption}'), ExpandConstant('{cm:CustomForm_Description}') );


    { Label1 } Label1 := TLabel.Create(Page); with Label1 do begin Parent := Page.Surface; Caption := ExpandConstant('{cm:CustomForm_Label1_Caption0}'); Left := ScaleX(16); Top := ScaleY(24); Width := ScaleX(70); Height := ScaleY(13); end;

    { Label2 } Label2 := TLabel.Create(Page); with Label2 do begin Parent := Page.Surface; Caption := ExpandConstant('{cm:CustomForm_Label2_Caption0}'); Left := ScaleX(17); Top := ScaleY(56); Width := ScaleX(70); Height := ScaleY(13); end;

    { Label3 } Label3 := TLabel.Create(Page); with Label3 do begin Parent := Page.Surface; Caption := ExpandConstant('{cm:CustomForm_Label3_Caption0}'); Left := ScaleX(17); Top := ScaleY(88); Width := ScaleX(70); Height := ScaleY(13); end;

    { Edit1 } Edit1 := TEdit.Create(Page); with Edit1 do begin Parent := Page.Surface; Left := ScaleX(115); Top := ScaleY(24); Width := ScaleX(273); Height := ScaleY(21); TabOrder := 0; end;

    { Edit2 } Edit2 := TEdit.Create(Page); with Edit2 do begin Parent := Page.Surface; Left := ScaleX(115); Top := ScaleY(56); Width := ScaleX(273); Height := ScaleY(21); TabOrder := 1; end;

    { Edit3 } Edit3 := TEdit.Create(Page); with Edit3 do begin Parent := Page.Surface; Left := ScaleX(115); Top := ScaleY(88); Width := ScaleX(273); Height := ScaleY(21); TabOrder := 2; end;

      Edit3.OnChange := @EdtOnChange;

    end;

    procedure CurPageChanged(CurPageID: Integer);
    begin
    If CurPageID = Page.ID Then
      WizardForm.NextButton.Enabled := false;
    end;

    end.
写入时,它会检查第三个文本框中的“2121212”值。如果希望在第一个或第二个框中显示,则需要为相应的编辑框添加OnChange事件处理程序