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

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

Adil

Старожил
urban странно, у меня тоже самое, до этого было нормально
 

urban

Старожил
Adil, интересно,и что делать?
p.s. давно дерзает вопрос,как вынести прогресс бар при использовании iswin7,чтобы он был на самом низу, вместе с кнопкой отмены?
 
Последнее редактирование:

Adil

Старожил
urban у меня заработала на этом примере
[SOURCE="inno"]#ifndef IS_ENHANCED
#error Enhanced edition of Inno Setup (restools) is required to compile this script
#endif

[Setup]
AppName=Win6TaskBar v1.1
AppVerName=Win6TaskBar v1.1
OutputDir=.
CreateAppDir=no
CreateUninstallRegKey=no

Код:
//created by troyan90 01.2012

const
  WS_EX_APPWINDOW = $40000; GWL_EXSTYLE = -20;

function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLongA@user32';
function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLongA@user32';
function ShowWindow(hWnd: HWND; nCmdShow: Integer): BOOL; external 'ShowWindow@user32';
  
function isWin6: boolean;
begin
  if (GetWindowsVersion shr 24) < 6 then result:=false
    else result:=true;
end;

procedure HideIcon(Sender: TObject);
begin
  ShowWindow(Application.Handle, SW_HIDE);
end;

procedure InitializeWizard();  var WFTimer: TTimer;
begin
  if isWin6 then begin
    WizardForm.Position:=poScreenCenter;
    WizardForm.BorderIcons:=[biSystemMenu];

    WizardForm.OnActivate:=@HideIcon;

    WFTimer:=TTimer.Create(WizardForm);
    WFTimer.Interval:=1;
    WFTimer.Enabled:=true;
    WFTimer.OnTimer:=@HideIcon;

    Application.ShowMainForm:= false;

    SetWindowLong(WizardForm.Handle, GWL_EXSTYLE,
      GetWindowLong(WizardForm.Handle, GWL_EXSTYLE) or WS_EX_APPWINDOW);
  end;
end;

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
  Confirm:=false; Cancel:=false;
  WizardForm.ProgressGauge.State:=npbsPaused;
  case MsgBoxEx(WizardForm.Handle, SetupMessage(msgExitSetupMessage),
      SetupMessage(msgExitSetupTitle), MB_YESNO or MB_DEFBUTTON2 or MB_ICONINFORMATION, 0, 0) of
    IDYES: Cancel:=true;
    IDNO: begin WizardForm.BringToFront; WizardForm.ProgressGauge.State:=npbsNormal; end;
  end;
end;[/SOURCE][/SPOILER]
 

EvilAlex

Старожил
Доброго времени суток !
Хотел бы узнать... Можно ли в Inno реализовать прогресс бар таким образом что во время установки он бы, например постепенно заполнялся из картинки с градиентов красно-зеленого, а при 100% показывался бы полностью зеленым ?
 

Вложения

urban

Старожил
как сделать второй маленький прогресс бар,который находится на линии обычного( каталисты подобный юзают)
 

Carlos

Участник
Модератор
Что нужно прописать в скрипте, чтобы при выборе одного компонента, второй выбирался автоматически.
Допустим при выборе русского языка интерфейса, русский язык озвучки выбирался сам и нельзя было бы выбрать английскую озвучку. (как у механиков)
 

EvilAlex

Старожил
EvilAlex, нарисовать,и вставить через ботву можно
Дык он нарисованный стоит через ботву. Просто он только один, что при установке в 70-80%, что при 100%, градиентный. а не полностью зеленый...
Было бы прикольно если бы вовремя установки до 99 он был один, а на 100 был другой !?
 

EvilAlex

Старожил
EvilAlex, как вариант при 100% подменять текстуру
Ну вот у меня на компе два прогресс бара. один красно-зеленный. другой полностью зеленый. оба в пнг !что и где прописат ьчтобы было как я хочу ?


Вот они в IsDone:

 
Последнее редактирование:

urban

Старожил
у кого-то есть самый простой пример для создания новой папки в selectdir
 

urban

Старожил
Snoopak96, ну чтобы при выборе папки установки рядом была кнопка на создание новой папки
 

vint56

Ветеран
Проверенный
urban пример от Johny777 лишние уберёш
[Setup][/B]
AppName=777
AppVerName=777
DefaultDirname=C:\Setup
Compression=none

Код:
var
  DirTreeView: TFolderTreeView;
  Edit: TEdit;
  Reset_Path_Button: TButton;


procedure DirFolderChange(Sender: TObject);
begin
  if TFolderTreeView(Sender).Directory <> WizardDirValue then Edit.Text := AddBackslash(TFolderTreeView(Sender).Directory) + '{#SetupSetting("AppName")}' else Edit.Text := TFolderTreeView(Sender).Directory;
  Reset_Path_Button.Enabled := Edit.Text <> RemoveBackslash(ExpandConstant('{#SetupSetting("DefaultDirName")}'));
end;


procedure BrowseForm_Buttons_OnClick(Sender: TObject);
begin
  case TButton(Sender).Caption of
    'Reset':
    begin
      Edit.Text := RemoveBackslash(ExpandConstant('{#SetupSetting("DefaultDirName")}'));
      TButton(Sender).Enabled := False;
    end;

    SetupMessage(msgButtonNewFolder):
    begin
      DirTreeView.CreateNewDirectory('Half-Life 2');
      Edit.Text := AddBackslash(DirTreeView.Directory) + '{#SetupSetting("AppName")}';
    end;

    SetupMessage(msgButtonOK): if Edit.Text <> WizardForm.DirEdit.Text then WizardForm.DirEdit.Text := Edit.Text;
  end;
end;


procedure BrowseClick(Sender: TObject);
var
  DefaultInstallPath: String;
  BrowseForm: TForm;
begin
  DefaultInstallPath := WizardDirValue;
  BrowseForm := TForm.Create(nil);
  with BrowseForm do
  begin
    ClientWidth := ScaleX(387);
    ClientHeight := ScaleY(364);
    Position := poScreenCenter;
    Caption := #32 + SetupMessage(msgBrowseDialogTitle);

    with TLabel.Create(nil) do
    begin
      SetBounds(ScaleX(7), ScaleY(4), ScaleX(207), ScaleY(16));
      Caption := SetupMessage(msgBrowseDialogLabel);
      Parent := BrowseForm;
    end;

    DirTreeView := TFolderTreeView.Create(nil)
    with DirTreeView do
    begin
      SetBounds(ScaleX(4), ScaleY(52), ScaleX(379), ScaleY(265));
      OnChange := @DirFolderChange;
      Parent := BrowseForm;
    end;

    ActiveControl := DirTreeView;

    Edit := TEdit.Create(nil);
    with Edit do
    begin
      SetBounds(ScaleX(4), ScaleY(25), ScaleX(379), ScaleY(21));
      Text := DirTreeView.Directory;
      Parent := BrowseForm;
    end;

    with TButton.Create(nil) do
    begin
      SetBounds(ScaleX(4), ScaleY(330), ScaleX(90), ScaleX(22));
      Parent := BrowseForm;
      Caption := SetupMessage(msgButtonCancel);
      Cursor := crHand;
      ModalResult := mrCancel;
    end;

    Reset_Path_Button := TButton.Create(nil)
    with Reset_Path_Button do
    begin
      SetBounds(ScaleX(99), ScaleY(330), ScaleX(90), ScaleY(22));
      Parent := BrowseForm;
      Caption := 'Reset';
      Enabled := Edit.Text <> RemoveBackslash(ExpandConstant('{#SetupSetting("DefaultDirName")}'))
      Cursor := crHand;
      OnClick := @BrowseForm_Buttons_OnClick;
    end;

    with TButton.Create(nil) do
    begin
      SetBounds(ScaleX(194), ScaleY(330), ScaleX(90), ScaleY(22));
      Parent := BrowseForm;
      Caption := SetupMessage(msgButtonNewFolder);
      Cursor := crHand;
      OnClick := @BrowseForm_Buttons_OnClick;
    end;

    with TButton.Create(nil) do
    begin
      SetBounds(ScaleX(289), ScaleY(330), ScaleX(90), ScaleY(22));
      Parent := BrowseForm;
      Caption := SetupMessage(msgButtonOK);
      OnClick := @BrowseForm_Buttons_OnClick;
      Cursor := crHand;
      ModalResult := mrOk;
    end;

    DirTreeView.ChangeDirectory(AddBackslash(DefaultInstallPath), True);

    if ShowModal = mrOk then WizardForm.DirEdit.Text := Edit.Text else WizardForm.DirEdit.Text := DefaultInstallPath;

    Free;
  end;
end;

procedure InitializeWizard();
begin
  WizardForm.DirBrowseButton.OnClick := @BrowseClick;
end;[/SPOILER]
 

urban

Старожил
vint56, та нужно примерно как у оригинсов чтобы не менялся вид обзора папки
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху