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

Статус
В этой теме нельзя размещать новые ответы.

Carlos

Участник
Модератор
vint56, То, что нужно.
А как теперь сделать, чтобы кнопка была только на первой странице?
 

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]
 

Carlos

Участник
Модератор
vint56, [STRIKE]И крайний вопрос: а скрытой можно сделать эту кнопку, но чтобы она была активна?[/STRIKE]
Вопрос решён.
 
Последнее редактирование:

andrey_167

Новичок
Здравствуйте может кто то подскажет как сделать чтобы на финальной странице при успешной установки создавалась кнопочка с запуском игры
 

vint56

Ветеран
Проверенный
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]
 

vint56

Ветеран
Проверенный
Shift85 используй Расширенную версию там есть редактор там есть Bevel
 

Shift85

Старожил
Подскажите пожалуйста как сделать дополнительную страницу компонентов.
Типа кнопку ДОП ПО при нажатии на кнопку переходит к выбору компонентов.

 

vint56

Ветеран
Проверенный
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]
 

DICI BF

Новичок
Всем привет.
Можно ли организовать такое, например если есть папка Skins возле инсталлятора то будет чебокс "Установить скины" а если её нет то не будет чебокса?
 

Mailchik

Старожил
Проверенный
DICI BF, код...
 

Shegorat

Lord of Madness
Администратор
Да я в курсе а без редактора средствами Inno Setup никак
Две картинки + botva2. Получается сама картинка + сверху тень/затемнение. Ну а сверху уже остальные элементы.
Ну либо делать исключительно родными средствами и писать алгоритм для затемнения, который в среде Inno Setup будет довольно тормознутым.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху