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

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

Snoopak96

Старожил
dvd4el,
А смысл от этого кода? Приоритет на unarc надо делать... или так для красоты?
 

nik1967

Old Men
Проверенный
Gnom, а как же
Код:
WizardForm.ComponentsList.TreeViewStyle := True;
Без ентого фигня получиться :)
 

Fix

Новичок
Не знаю больше куда написать,поэтому здесь напишу. Можно ли с помощью батника или как-то еще реализовать вот это [hide=Спойлер]
Код:
[noparse]в language.txt пишем russian
в Common\Settings\Settings.cfg через поиск находим Region = "NORTHAMERICA"
ниже в строке Languages = меняем "EN" на "RU"
копируем файл RU.PLT из Win32\LOCALISATION\EUROPE в Win32\LOCALISATION\NORTHAMERICA[/noparse]
[/hide]
Игра The Cursed Crusade
 

deus_ex

Новичок
Проверенный
Можно ли с помощью батника или как-то еще реализовать вот это
Fix, самый простой способ - создать два набора файлов, для русской версии и для английской, и в зависимости от выбранного компонента (языка) пусть из архива распаковываются соответствующие файлы. способ чуть посложнее - это редактирование текстовика средствами инно.
 

Fix

Новичок
deus_ex, ну тут в основном и надо редактировать текстовики.
 

ACtivity

Новичок
deus_ex, ну тут в основном и надо редактировать текстовики.
Копируешь стандартный конфиг и меняешь на нужные тебе значения, ну например чтоб русский язык был, и от выбора компонента, в данном примере 'язык' прикрутить этот конфиг, т.е
Язык Английский (конфиг стандартный) language.txt \ Settings.cfg \
Язык Русский (конфиг заточеный под RUS) language.txt \ Settings.cfg \ RU.PLT

[Files]
Source: Settings.cfg; DestDir: "{sys}\LOCALISATION\NORTHAMERICA"; Flags: dontcopy; Components: text\rus; // заточеный под рус
Source: RU.PLT; DestDir: "{cf}\Settings"; Flags: dontcopy; Components: text\rus; // если файл большой то жмешь его, и пихаешь в нужный тебе архив, => из секции [Files] его Delete

пример к ISDone. - >>>>
..................................
if not ISArcExtract ( 1, 0, ExpandConstant('{src}\RU.PLT.arc'), ExpandConstant('{cf}\Settings\'), false, '', '', '', false ) then break;
 
Последнее редактирование:

HATE

Участник
LOCALISATION\NORTHAMERICA
Common\Settings
находятся в папке с игрой, товарищ Fix забыл это указать.
 

ACtivity

Новичок
LOCALISATION\NORTHAMERICA
Common\Settings
находятся в папке с игрой, товарищ Fix забыл это указать.
[Files]
Source: Settings.cfg; DestDir: "{app}\LOCALISATION\NORTHAMERICA"; Flags: dontcopy; Components: text\rus; // заточеный под рус
Source: RU.PLT; DestDir: "{app}\Common\Settings"; Flags: dontcopy; Components: text\rus; // если файл большой то жмешь его, и пихаешь в нужный тебе архив, => из секции [Files] его Delete

пример к ISDone. - >>>>
..................................
if not ISArcExtract ( 1, 0, ExpandConstant('{src}\RU.PLT.arc'), ExpandConstant('{app}\Settings\'), false, '', '', '', false ) then break;
:)
 

vint56

Ветеран
Проверенный
SuZukI,
procedure InitializeWizard();
begin
ClientHeight := ScaleY(450);
ClientWidth := ScaleX(800);
end;
 

SuZukI

Мимокрокодил
Я еще имел ввиду и с правильным расположением кнопок,а то хрень получается...

Добавлено через 13 минут
Или как поменять расположение кнопок:отмена,далее и т.д. ?
 

nik1967

Old Men
Проверенный
SuZukI,
Код:
[Setup]
AppName=Name
AppVerName=Name
DefaultDirName={pf}\Name

[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
 
[_Code]
procedure InitializeWizard();
var
  L: Integer;
begin
with WizardForm do begin
    L:=ScaleX(157); // На сколько надо увеличить длину инсталла
    ClientWidth := ClientWidth + L;
    ClientHeight:= ClientHeight + ScaleY(52);
    OuterNotebook.Width := ClientWidth;
    OuterNotebook.Height := ClientHeight - ScaleY(60);
    InnerNotebook.Left := ClientWidth div 2 - InnerNotebook.Width div 2;
    Bevel.Width:= ClientWidth;
    Bevel1.Width:= ClientWidth;
    MainPanel.Width:= ClientWidth;
    WelcomeLabel1.Hide;
    WelcomeLabel2.Hide;
    Center;
    WizardSmallBitmapImage.Left:= ClientWidth - ScaleX(57);
  with WizardBitmapImage do begin
    Top:= ScaleY(0);
    Left:= ScaleX(0);
    Width:= OuterNotebook.Width;
    Height:= OuterNotebook.Height;
    Stretch:= true;
  end;
  with Bevel do begin
    Left := ScaleX(1);
    Top := OuterNotebook.Height;
    Width := OuterNotebook.Width - ScaleX(3);
  end;
  with NextButton do begin
    Left := OuterNotebook.Width - ScaleX(240);
    Top := OuterNotebook.Height + ScaleY(18);
    Width:= ScaleX(110);
    Height:= ScaleY(28);
  end;
  with BackButton do begin
    Left := OuterNotebook.Width - ScaleX(350);
    Top := OuterNotebook.Height + ScaleY(18);
    Width:= ScaleX(110);
    Height:= ScaleY(28);
  with CancelButton do begin
    Left := OuterNotebook.Width - ScaleX(120);
    Top := OuterNotebook.Height + ScaleY(18);
    Width:= ScaleX(110);
    Height:= ScaleY(28);
  end;
end; end; end;
Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
;// отключение ненужных страниц
DisableProgramGroupPage=true
[_Code]
procedure InitializeWizard();
begin
  with WizardForm do
  begin
    AutoScroll := False;
    ClientHeight := ScaleY(380);
    ClientWidth := ScaleX(600);
  end;

  with WizardForm.Bevel do
  begin
    Left := ScaleX(1);
    Top := ScaleY(334);
    Width := ScaleX(600);
  end;

  with WizardForm.CancelButton do
  begin
    Left := ScaleX(508);
    Top := ScaleY(343);
  end;

  with WizardForm.NextButton do
  begin
    Left := ScaleX(423);
    Top := ScaleY(343);
  end;

  with WizardForm.BackButton do
  begin
    Left := ScaleX(348);
    Top := ScaleY(343);
  end;

  with WizardForm.OuterNotebook do
  begin
    Width := ScaleX(601);
    Height := ScaleY(336);
  end;

  with WizardForm.WizardBitmapImage do
  begin
    Width := ScaleX(200);
    Height := ScaleY(340);
  end;

  with WizardForm.WelcomeLabel2 do
  begin
    Left := ScaleX(256);
  end;

  with WizardForm.WelcomeLabel1 do
  begin
    Left := ScaleX(256);
  end;

  with WizardForm.Bevel1 do
  begin
    Width := ScaleX(603);
    Height := ScaleY(0);
  end;

  with WizardForm.InnerNotebook do
  begin
    Top := ScaleY(70);
    Width := ScaleX(520);
    Height := ScaleY(260);
  end;

  with WizardForm.LicenseNotAcceptedRadio do
  begin
    Left := ScaleX(16);
    Top := ScaleY(240);
  end;

  with WizardForm.LicenseAcceptedRadio do
  begin
    Left := ScaleX(16);
    Top := ScaleY(220);
  end;

  with WizardForm.LicenseMemo do
  begin
    Width := ScaleX(521);
    Height := ScaleY(180);
  end;

  with WizardForm.PasswordEdit do
  begin
    Left := ScaleX(56);
  end;

  with WizardForm.PasswordEditLabel do
  begin
    Left := ScaleX(56);
  end;

  with WizardForm.PasswordLabel do
  begin
    Left := ScaleX(56);
  end;

  with WizardForm.InfoBeforeMemo do
  begin
    Width := ScaleX(521);
    Height := ScaleY(221);
  end;

  with WizardForm.UserInfoSerialEdit do
  begin
    Left := ScaleX(56);
    Top := ScaleY(224);
    Parent := WizardForm.PasswordPage;
  end;

  with WizardForm.UserInfoSerialLabel do
  begin
    Parent := WizardForm.PasswordPage;
    Left := ScaleX(56);
    Top := ScaleY(208);
  end;

  with WizardForm.UserInfoOrgEdit do
  begin
    Left := ScaleX(56);
    Top := ScaleY(172);
    Parent := WizardForm.PasswordPage;
  end;

  with WizardForm.UserInfoOrgLabel do
  begin
    Parent := WizardForm.PasswordPage;
    Left := ScaleX(56);
    Top := ScaleY(156);
  end;

  with WizardForm.UserInfoNameEdit do
  begin
    Left := ScaleX(56);
    Top := ScaleY(120);
    Parent := WizardForm.PasswordPage;
  end;

  with WizardForm.UserInfoNameLabel do
  begin
    Parent := WizardForm.PasswordPage;
    Left := ScaleX(56);
    Top := ScaleY(104);
  end;

  WizardForm.UserInfoSerialEdit.TabOrder := 0;
  WizardForm.UserInfoSerialLabel.TabOrder := 1;
  WizardForm.UserInfoOrgEdit.TabOrder := 2;
  WizardForm.UserInfoOrgLabel.TabOrder := 3;
  WizardForm.UserInfoNameEdit.TabOrder := 4;
  WizardForm.UserInfoNameLabel.TabOrder := 5;

  with WizardForm.SelectDirBitmapImage do
  begin
    Left := ScaleX(48);
  end;

  with WizardForm.DiskSpaceLabel do
  begin
    Left := ScaleX(48);
    Top := ScaleY(112);
  end;

  with WizardForm.DirBrowseButton do
  begin
    Left := ScaleX(390);
    Top := ScaleY(76);
  end;

  with WizardForm.DirEdit do
  begin
    Left := ScaleX(48);
    Top := ScaleY(76);
  end;

  with WizardForm.SelectDirBrowseLabel do
  begin
    Left := ScaleX(48);
  end;

  with WizardForm.SelectDirLabel do
  begin
    Left := ScaleX(92);
  end;

  with WizardForm.ComponentsDiskSpaceLabel do
  begin
    Left := ScaleX(8);
    Top := ScaleY(232);
  end;

  with WizardForm.ComponentsList do
  begin
    Width := ScaleX(521);
    Height := ScaleY(168);
  end;

  with WizardForm.TypesCombo do
  begin
    Left := ScaleX(48);
  end;

  with WizardForm.SelectComponentsLabel do
  begin
    Left := ScaleX(48);
  end;

  with WizardForm.SelectGroupBitmapImage do
  begin
    Left := ScaleX(48);
    Top := ScaleY(135);
    Parent := WizardForm.SelectDirPage;
  end;

  with WizardForm.NoIconsCheck do
  begin
    Left := ScaleX(48);
    Top := ScaleY(231);
    Parent := WizardForm.SelectDirPage;
  end;

  with WizardForm.GroupBrowseButton do
  begin
    Left := ScaleX(390);
    Top := ScaleY(204);
    Parent := WizardForm.SelectDirPage;
  end;

  with WizardForm.GroupEdit do
  begin
    Left := ScaleX(48);
    Top := ScaleY(204);
    Parent := WizardForm.SelectDirPage;
  end;

  with WizardForm.SelectStartMenuFolderBrowseLabel do
  begin
    Parent := WizardForm.SelectDirPage;
    Left := ScaleX(48);
    Top := ScaleY(180);
  end;

  with WizardForm.SelectStartMenuFolderLabel do
  begin
    Parent := WizardForm.SelectDirPage;
    Left := ScaleX(92);
    Top := ScaleY(145);
  end;

  WizardForm.NoIconsCheck.TabOrder := 0;
  WizardForm.GroupBrowseButton.TabOrder := 1;
  WizardForm.GroupEdit.TabOrder := 2;
  WizardForm.SelectStartMenuFolderBrowseLabel.TabOrder := 3;
  WizardForm.SelectStartMenuFolderLabel.TabOrder := 4;

  with WizardForm.TasksList do
  begin
    Left := ScaleX(64);
    Height := ScaleY(224);
  end;

  with WizardForm.SelectTasksLabel do
  begin
    Left := ScaleX(56);
  end;

  with WizardForm.ReadyMemo do
  begin
    Width := ScaleX(521);
    Height := ScaleY(237);
  end;

  with WizardForm.ReadyLabel do
  begin
    Left := ScaleX(40);
  end;

  with WizardForm.PreparingErrorBitmapImage do
  begin
    Left := ScaleX(48);
    Top := ScaleY(56);
  end;

  with WizardForm.PreparingLabel do
  begin
    Left := ScaleX(72);
    Top := ScaleY(56);
  end;

  with WizardForm.PreparingYesRadio do
  begin
    Left := ScaleX(72);
    Top := ScaleY(161);
  end;

  with WizardForm.PreparingNoRadio do
  begin
    Left := ScaleX(72);
    Top := ScaleY(183);
  end;

  with WizardForm.FilenameLabel do
  begin
    Top := ScaleY(136);
  end;

  with WizardForm.StatusLabel do
  begin
    Top := ScaleY(120);
  end;

  with WizardForm.ProgressGauge do
  begin
    Top := ScaleY(162);
    Width := ScaleX(521);
    Height := ScaleY(29);
  end;

  with WizardForm.InfoAfterMemo do
  begin
    Width := ScaleX(521);
    Height := ScaleY(237);
  end;

  with WizardForm.MainPanel do
  begin
    Width := ScaleX(603);
  end;

  with WizardForm.WizardSmallBitmapImage do
  begin
    Left := ScaleX(544);
    Top := ScaleY(0);
  end;

  with WizardForm.WizardBitmapImage2 do
  begin
    Width := ScaleX(200);
    Height := ScaleY(340);
  end;

  with WizardForm.RunList do
  begin
    Left := ScaleX(264);
  end;

  with WizardForm.NoRadio do
  begin
    Left := ScaleX(264);
    Top := ScaleY(180);
  end;

  with WizardForm.YesRadio do
  begin
    Left := ScaleX(264);
    Top := ScaleY(158);
  end;

  with WizardForm.FinishedLabel do
  begin
    Left := ScaleX(264);
    Top := ScaleY(79);
  end;

  with WizardForm.FinishedHeadingLabel do
  begin
    Left := ScaleX(264);
    Top := ScaleY(24);
  end;

  with WizardForm.BeveledLabel do
  begin
    Top := ScaleY(330);
  end;
end;
 

Avangard

Участник
Как поменять расположение страниц инсталлятора? Например, чтобы страница SelectComponents шла не после SelectDir, а перед.
 

LexBell

Борода
Супер модератор
Я еще имел ввиду и с правильным расположением кнопок,а то хрень получается...
начал ваять модуль, думаю, смысл ясен, может кто-нибудь доработает :)
procedure WizardFormResise();
begin
WizardForm.MainPanel.Width := WizardForm.ClientWidth;
WizardForm.WizardSmallBitmapImage.Left := WizardForm.MainPanel.Width-WizardForm.WizardSmallBitmapImage.Width-ScaleX(3);

WizardForm.OuterNotebook.Width := WizardForm.ClientWidth;
WizardForm.InnerNotebook.Width := WizardForm.ClientWidth-WizardForm.InnerNotebook.left*2;
WizardForm.OuterNotebook.Height := WizardForm.ClientHeight-ScaleY(63);
WizardForm.InnerNotebook.Height := WizardForm.OuterNotebook.Height-WizardForm.OuterNotebook.Top-ScaleX(40);

WizardForm.Bevel1.Parent := WizardForm;
WizardForm.Bevel1.BringToFront;
WizardForm.Bevel1.Top := ScaleY(50);
WizardForm.Bevel.Top := WizardForm.OuterNotebook.Height;
WizardForm.Bevel.Width := WizardForm.ClientWidth;
WizardForm.Bevel1.Width := WizardForm.ClientWidth;

WizardForm.CancelButton.Top := WizardForm.ClientHeight-ScaleY(33);
WizardForm.NextButton.Top := WizardForm.ClientHeight-ScaleY(33);
WizardForm.BackButton.Top := WizardForm.ClientHeight-ScaleY(33);

WizardForm.LicenseMemo.Width := WizardForm.InnerNotebook.Width;
WizardForm.LicenseMemo.Height := WizardForm.InnerNotebook.Height-ScaleY(89);

WizardForm.LicenseAcceptedRadio.Top := WizardForm.InnerNotebook.Height-ScaleY(41);
WizardForm.LicenseNotAcceptedRadio.Top := WizardForm.InnerNotebook.Height-ScaleY(21);

WizardForm.InfoBeforeMemo.Width := WizardForm.InnerNotebook.Width;
WizardForm.InfoBeforeMemo.Height := WizardForm.InnerNotebook.Height-ScaleY(32);

WizardForm.UserInfoSerialEdit.Width := WizardForm.InnerNotebook.Width;
WizardForm.UserInfoOrgEdit.Width := WizardForm.InnerNotebook.Width;
WizardForm.UserInfoNameEdit.Width := WizardForm.InnerNotebook.Width;

WizardForm.DirBrowseButton.Left := WizardForm.InnerNotebook.Width-WizardForm.DirBrowseButton.Width-ScaleX(1);
WizardForm.DirEdit.Width := WizardForm.DirBrowseButton.Left-ScaleX(10);

WizardForm.TypesCombo.Width := WizardForm.InnerNotebook.Width;
WizardForm.ComponentsDiskSpaceLabel.Top := WizardForm.InnerNotebook.Height-ScaleY(21);
WizardForm.ComponentsList.Width := WizardForm.InnerNotebook.Width;
WizardForm.ComponentsList.Height :=WizardForm.InnerNotebook.Height-ScaleY(104);

WizardForm.GroupBrowseButton.Left := WizardForm.InnerNotebook.Width-WizardForm.GroupBrowseButton.Width-ScaleX(1);
WizardForm.GroupEdit.Width := WizardForm.GroupBrowseButton.Left-ScaleX(10);

WizardForm.NoIconsCheck.Top := WizardForm.InnerNotebook.Height-ScaleY(22);

WizardForm.TasksList.Width := WizardForm.InnerNotebook.Width;
WizardForm.TasksList.Height := WizardForm.InnerNotebook.Height-ScaleY(45);

WizardForm.ReadyMemo.Width := WizardForm.InnerNotebook.Width;
WizardForm.ReadyMemo.Height := WizardForm.InnerNotebook.Height-ScaleY(55);

WizardForm.FilenameLabel.Width := WizardForm.InnerNotebook.Width;
WizardForm.StatusLabel.Width := WizardForm.InnerNotebook.Width;
WizardForm.ProgressGauge.Width := WizardForm.InnerNotebook.Width;

WizardForm.InfoAfterMemo.Width := WizardForm.InnerNotebook.Width;
WizardForm.InfoAfterMemo.Height := WizardForm.InnerNotebook.Height-ScaleY(32);
end;
procedure WizardFormResise вызываем в процедуре InitializeWizard, после изменения размеров. Теоретиески, этот модуль подгоняет размеры компонентов под изменившиеся размеры инсталлятора. Но над ним работать и работать :)

Как поменять расположение страниц инсталлятора? Например, чтобы страница SelectComponents шла не после SelectDir, а перед
Совершенно никак, В инно это не предусмотрено.
 

Zimbo

Участник
dvd4el,
Как поменять расположение страниц инсталлятора? Например, чтобы страница SelectComponents шла не после SelectDir, а перед.
просто компоненты страниц подстраивать под себя и вызвать их в том порядке каком тебе надо
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху