Inno Setup (создание инсталяционных пакетов)

  • Автор темы Автор темы Shegorat
  • Дата начала Дата начала
Статус
В этой теме нельзя размещать новые ответы.
vint56, То, что нужно.
А как теперь сделать, чтобы кнопка была только на первой странице?
 
Carlos
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

Код:
var
About: TNewButton;
ResultCode: Integer;

procedure AboutClick(Sender: TObject);
begin
ShellExec('open', ExpandConstant('{src}\readme.txt'),'','', SW_SHOW, ewNoWait, ResultCode)
end;


procedure InitializeWizard();
begin
About := TNewButton.Create(WizardForm);
with About do
begin
Parent := WizardForm
Left := ScaleX(16);
Top := ScaleY(325);
Width := ScaleX(75);
Height := ScaleY(25);
Caption := 'О программе';
OnClick := @AboutClick;
end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
About.Hide;
case CurPageID of
wpWelcome:
begin
About.Show;
end;
end;
end;[/SPOILER]
 
vint56, [STRIKE]И крайний вопрос: а скрытой можно сделать эту кнопку, но чтобы она была активна?[/STRIKE]
Вопрос решён.
 
Последнее редактирование:
Здравствуйте может кто то подскажет как сделать чтобы на финальной странице при успешной установки создавалась кнопочка с запуском игры
 
andrey_167
[Setup]
AppName=My Program
AppVersion=1.5
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program

[Files]
Source: C:\Program Files (x86)\Inno Setup 5\Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion

Код:
var
  RunEXE: TNewButton;
  
procedure LaunchButtonOnClick(Sender: TObject);
var
  ErrorCode: integer;
begin
 Exec(ExpandConstant('{app}') + '\MyProg.exe',' ', ExpandConstant('{app}'), SW_HIDE, ewNoWait, ErrorCode);
 SendMessage(WizardForm.NextButton.handle, $F5, 0, 0);
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID=wpFinished then begin
  RunEXE := TNewButton.Create(WizardForm);
  with RunEXE do
  begin
    Name := 'RunEXE';
    Parent := WizardForm;
    Left := ScaleX(104);
    Top := ScaleY(328);
    Width := ScaleX(120);
    Height := ScaleY(23);
    Caption := 'Запуск приложения';
    OnClick:= @LaunchButtonOnClick;
  end;
end;
end;[/SPOILER]
 
Shift85 используй Расширенную версию там есть редактор там есть Bevel
 
Подскажите пожалуйста как сделать дополнительную страницу компонентов.
Типа кнопку ДОП ПО при нажатии на кнопку переходит к выбору компонентов.

 
Shift85
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
ShowTasksTreeLines=yes

[Components]
Name: icons; Description: {cm:AdditionalIcons}; Types: full;
Name: icons\desktop; Description: {cm:CreateDesktopIcon}; Types: full;
Name: icons\quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; OnlyBelowVersion: 0,6.1; Types: full;
Name: icons\quicklaunchicon7; Description: {cm:CreateQuickLaunchIcon}; MinVersion: 0,6.1; Types: full;

Name: Redist; Description: Дополнительное программное обеспечение: ; Types: full;
Name: Redist\Redist1; Description: Установить\Обновить Microsoft DirectX ; Types: full;
Name: Redist\Redist2; Description: Установить\Обновить Microsoft Visual C++ Redist ; Types: full;

Name: "root"; Description: "Выберите игру"; Flags: fixed; Types: full custom
Name: "root\game0"; Description: "Half-Life 2"; Flags: exclusive;
Name: "root\game1"; Description: "Portal"; Flags: exclusive;

Код:
var
 ComponentsButton: TNewButton;

procedure ComponentsClick(Sender : TObject);
 begin
   case TButton(Sender).Tag of
    0: begin
       TButton(Sender).Tag := 1;
       TButton(Sender).Caption := 'Компоненты';
       WizardForm.ComponentsList.Show;
       WizardForm.TypesCombo.Hide;
       WizardForm.SelectComponentsLabel.Hide;
       WizardForm.ComponentsDiskSpaceLabel.Hide;
       WizardForm.PageNameLabel.Caption:='Выбор компонентов';
       WizardForm.PageDescriptionLabel.Caption:='Какие компоненты должны быть установлены?';
       WizardForm.SelectComponentsLabel.Show;
       WizardForm.ComponentsDiskSpaceLabel.Show;
       end;
    1: begin
       TButton(Sender).Tag := 0;
       TButton(Sender).Caption := 'Компоненты';
       WizardForm.ComponentsList.Hide;
       WizardForm.PageNameLabel.Caption:='Выбор папки установки';
       WizardForm.PageDescriptionLabel.Caption:='В какую папку вы хотите установить {#SetupSetting("AppName")}?';
       WizardForm.DirEdit.Show;
       WizardForm.DirBrowseButton.Show;
       WizardForm.SelectDirLabel.Show;
       WizardForm.SelectDirBitmapImage.Show;
      end;
   end;
 end;

procedure InitializeWizard();
 begin
   ComponentsButton := TNewButton.Create(WizardForm);
   with ComponentsButton do
   begin
     Parent := WizardForm;
     SetBounds(ScaleX(25),ScaleY(325),ScaleX(100),ScaleY(25));
     Caption := 'Компоненты';
     OnClick := @ComponentsClick;
   end;
  with WizardForm.ComponentsList do
  begin
    Top := ScaleY(50);
    Height := ScaleY(155);
  end;
 end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  if (PageID = 7)then
  Result:= True;
end;

Procedure CurPageChanged(CurPageID: Integer);
begin
  ComponentsButton.Hide;
  case CurPageID of
  wpSelectDir:
  begin
  ComponentsButton.Show;
end;
end;
end;[/SPOILER]
 
Всем привет.
Можно ли организовать такое, например если есть папка Skins возле инсталлятора то будет чебокс "Установить скины" а если её нет то не будет чебокса?
 
DICI BF, код...
 
Да я в курсе а без редактора средствами Inno Setup никак
Две картинки + botva2. Получается сама картинка + сверху тень/затемнение. Ну а сверху уже остальные элементы.
Ну либо делать исключительно родными средствами и писать алгоритм для затемнения, который в среде Inno Setup будет довольно тормознутым.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху