Search code examples
installationsetup-projectinno-setup

add button only in one page in instal file


i want to add a button to my instal file but in one page (the page i choose) but the code i used add the button or URL in all pages

how i can modify the following code to add the button or the URL to only in one page

function InitializeSetup: Boolean;
var
  S: AnsiString;
begin
  // Show the contents of Readme.txt (non Unicode) in a message box
  ExtractTemporaryFile('Info.rtf');
  Result := True;
end;

procedure AboutButtonOnClick(Sender: TObject);

var
 Document : String;
 WordPad : String;
 ErrorCode : Integer;
begin
   // Typical Location on XP and later.
   WordPad := ExpandConstant('{pf}') + '\Windows NT\Accessories\WordPad.exe'
   // Find word pad
   if Not FileExists(WordPad) then
   begin
     // Location in Windows 95/98
     WordPad := ExpandConstant('{pf}') + '\Accessories\WordPad.exe'
     if Not FileExists(WordPad) then
     begin
       // Fall back to anything associated with document.
       WordPad := Document;
       Document := '';
     end;
   end;

   if not ShellExec('open',WordPad,ExpandConstant('{tmp}\Info.rtf'),'',SW_SHOW,ewNoWait,ErrorCode) then
   begin
      MsgBox(SysErrorMessage(ErrorCode),mbError,MB_OK);
   end;
end;

procedure URLLabelOnClick(Sender: TObject);
var
  ErrorCode: Integer;
begin
  ShellExec('open', 'http://WwW.GooGle.CoM', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;

procedure InitializeWizard();
var
  AboutButton, CancelButton: TButton;
  URLLabel: TNewStaticText;
begin
  { Custom wizard pages }

  { Other custom controls }

  CancelButton := WizardForm.CancelButton;

  AboutButton := TButton.Create(WizardForm);
  AboutButton.Cursor := crHand;
  AboutButton.Left := 20;
  AboutButton.Top := 326;
  AboutButton.Width := CancelButton.Width;
  AboutButton.Height := CancelButton.Height;
  AboutButton.Caption := '&Info...';
  AboutButton.OnClick := @AboutButtonOnClick;
  AboutButton.Parent := WizardForm;

  URLLabel := TNewStaticText.Create(WizardForm);
  URLLabel.Caption := 'WwW.GooGle.CoM';
  URLLabel.Cursor := crHand;
  URLLabel.OnClick := @URLLabelOnClick;
  URLLabel.Parent := WizardForm;
  { Alter Font *after* setting Parent so the correct defaults are inherited first }
  URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline];
  URLLabel.Font.Color := clBlue;
  { تنفع تتعمل بارقات لتحديد مكان الزر او لينك مثلا }
  URLLabel.Top := 330;
  URLLabel.Left := 100;
end;

Solution

  • This code works for me.

    [code]
    function InitializeSetup: Boolean;
    var
      S: AnsiString;
    begin
      // Show the contents of Readme.txt (non Unicode) in a message box
      ExtractTemporaryFile('Info.rtf');
      Result := True;
    end;
    
    procedure AboutButtonOnClick(Sender: TObject);
    
    var
     Document : String;
     WordPad : String;
     ErrorCode : Integer;
    begin
       // Typical Location on XP and later.
       WordPad := ExpandConstant('{pf}') + '\Windows NT\Accessories\WordPad.exe'
       // Find word pad
       if Not FileExists(WordPad) then
       begin
         // Location in Windows 95/98
         WordPad := ExpandConstant('{pf}') + '\Accessories\WordPad.exe'
         if Not FileExists(WordPad) then
         begin
           // Fall back to anything associated with document.
           WordPad := Document;
           Document := '';
         end;
       end;
    
       if not ShellExec('open',WordPad,ExpandConstant('{tmp}\Info.rtf'),'',SW_SHOW,ewNoWait,ErrorCode) then
       begin
          MsgBox(SysErrorMessage(ErrorCode),mbError,MB_OK);
       end;
    end;
    
    procedure URLLabelOnClick(Sender: TObject);
    var
      ErrorCode: Integer;
    begin
      ShellExec('open', 'http://WwW.GooGle.CoM', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
    end;
    
    
    var 
      AboutButton, CancelButton: TButton;
      URLLabel: TNewStaticText;
    
    
    procedure CurPageChanged(CurPage: Integer);
    
    begin
    //Change the value below to change which page the button and label appear on.  
      if CurPage = wpWelcome then
      begin
      CancelButton := WizardForm.CancelButton;
      AboutButton := TButton.Create(WizardForm);
      AboutButton.Cursor := crHand;
      AboutButton.Left := 20;
      AboutButton.Top := 326;
      AboutButton.Width := CancelButton.Width;
      AboutButton.Height := CancelButton.Height;
      AboutButton.Caption := '&Info...';
      AboutButton.OnClick := @AboutButtonOnClick;
      AboutButton.Parent := WizardForm;
    
      URLLabel := TNewStaticText.Create(WizardForm);
      URLLabel.Caption := 'WwW.GooGle.CoM';
      URLLabel.Cursor := crHand;
      URLLabel.OnClick := @URLLabelOnClick;
      URLLabel.Parent := WizardForm;
      { Alter Font *after* setting Parent so the correct defaults are inherited first }
      URLLabel.Font.Style := URLLabel.Font.Style + [fsUnderline];
      URLLabel.Font.Color := clBlue;
      URLLabel.Top := 330;
      URLLabel.Left := 100;
      end
      //Change the value below to match the value above so the button is hidden on pages other than the one you want.
      if CurPage <> wpWelcome then
      begin
      AboutButton.Visible := False;
      URLLabel.Visible := False;
      end
    end;