Jump to content
Korean Random
EvilAlex

Создание инсталляторов для модпаков на базе Inno Setup

Recommended Posts

 

 

Какой язык программирования использует Инно?

 

Pascal 

Share this post


Link to post

Short link
Share on other sites

Несколько вопросов.

2. Какой язык программирования использует Инно? Делфи?

Pascal

Ап. Ха. Уже ответили...странно тема загрузилась :)

Несколько вопросов.

1. Подскажите пожалуйста, как прописать гет запрос. А то по разному пробовал, не получается.

Либо я туплю, либо вопрос мне действительно непонятен... напишите, что конкретно вы хотите получить?

Edited by Yusha

Share this post


Link to post

Short link
Share on other sites

С запросом разобрался, не нужно.

 

Подскажите, исходник почти такой же как в первом посте. Как изменить размеры SelectDirPage ? А то находися слево, вообще никак не смотрится. Нужно либо передвинуть правей, либо расширить. Но кодов с размерами не нашел

Share this post


Link to post

Short link
Share on other sites

С запросом разобрался, не нужно.

 

Подскажите, исходник почти такой же как в первом посте. Как изменить размеры SelectDirPage ? А то находися слево, вообще никак не смотрится. Нужно либо передвинуть правей, либо расширить. Но кодов с размерами не нашел

А вкладку формы не открыть чтоль

Share this post


Link to post

Short link
Share on other sites

Открыл. И забагал установщик

Он внес свои изменения и все слетело

 

Так же нужно изменить размеры странички, где прогресс установки

 

Был бы крайне благодарен за помощь.

Edited by guceds

Share this post


Link to post

Short link
Share on other sites
Код скинь

 

Скинул.

 

Проблема еще актуальна. Кто поможет, буду благодарен.

Edited by guceds

Share this post


Link to post

Short link
Share on other sites

 

 

Как изменить размеры SelectDirPage ? А то находися слево, вообще никак не смотрится. Нужно либо передвинуть правей, либо расширить.
Я не совсем понял, что же там такое.. Скрин?

Share this post


Link to post

Short link
Share on other sites

Я не совсем понял, что же там такое.. Скрин?

Вот. Картинкой я могу управлять, а как эту форму передвинуть я не знаю.

post-31772-0-03463800-1432920355_thumb.png

Share this post


Link to post

Short link
Share on other sites

@guceds, указать соответствующим параметрам этих объектов нужные вам значения:

WizardForm.SelectDirLabel.Width := 
WizardForm.SelectDirBrowseLabel.Width := 
WizardForm.DirEdit.Width := 
WizardForm.DirBrowseButton.Left := 
WizardForm.DiskSpaceLabel.Width := 

Вроде, ничего не забыл.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Помогите разобраться с ошибкой: в конце компиляции выскакивает вот такое

 

48a27cf28214af5b7fbc1c4321322565.jpg

 

Пишет: Процесс не может получить доступ к файлу, так как этот файл открыт в другом приложении.

 

блин какой файл в каком приложении?:???

 

Подскажите хоты бы примерно где искать причину

 

Комп перезагружал, скрипт перебирал, нечччче непойму, раньше все работало

Edited by МаксNK_42

Share this post


Link to post

Short link
Share on other sites

@МаксNK_42, такой скрин нет смысла вообще прикреплять, не читабелен.

 

Смотрите внизу лог компиляции. На каком файле крашится - в нём и проблема.

Share this post


Link to post

Short link
Share on other sites

Всем привет. Возникла необходимость разделить типы модов по страницам как это реализовано у протанки шаг 1,2,3, и т.д. 

post-21236-0-52988000-1432998105_thumb.jpgpost-21236-0-47179300-1432998102_thumb.jpgpost-21236-0-18091000-1432998100_thumb.jpg

 

 

Подскажите как реализовать? В теме что то не нашел. Может плохо смотрел. 

 

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
Подскажите как реализовать? В теме что то не нашел.

Где-то было что-то такое.

 

Вам нужно создать страницу, элементы на них. А дальше, исходя из того, какой у вас способ вывода изображений, адаптировать это под новую страницу. Самый удобный способ, кмк, этот (просто сделать не плавающую форму, а фиксированную, в каком-либо месте).

Для расширения его действия на две страницы достаточно всего от 3-х строк.

Как прикрепить файлы к компонентам на созданной странице здесь точно есть (точно помню, что давал пример).

Ничего сложного, в принципе, нет.

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

Это запарно :) Запутаешься

Но не сложно, примеры новых стр 100 раз выкладывали

Share this post


Link to post

Short link
Share on other sites

Это запарно :) Запутаешься

Но не сложно, примеры новых стр 100 раз выкладывали

поиск выдал не более 10 вариантов со словосочетаниями новая страница.

 да и то что нашел относилось лишь к страницам типа фак, редми... а мне нужно сделать несколько страниц компонентов. при чем не взаимоисключающих. ну как у про танки например. выбор прицелов далее например ангаров и далее например иконки. 

Share this post


Link to post

Short link
Share on other sites

 

 

поиск выдал не более 10 вариантов со словосочетаниями новая страница.
Искать нужно обширнее и конкретнее. Например "TWizardPage".

Share this post


Link to post

Short link
Share on other sites

поиск выдал не более 10 вариантов со словосочетаниями новая страница.

 да и то что нашел относилось лишь к страницам типа фак, редми... а мне нужно сделать несколько страниц компонентов. при чем не взаимоисключающих. ну как у про танки например. выбор прицелов далее например ангаров и далее например иконки. 

[Setup]
AppName=Моя программа
AppVersion=1.5
DefaultDirName={pf}\Моя программа
DirExistsWarning=no
AppendDefaultDirName=no
[CustomMessages]
CompName1=Компонент 1
CompName2=Компонент 2
CompSubtitlesLng=Язык субтитров
CompVoiceLng=Язык озвучки
CompRussian=Русский
CompEnglish=Английский
[Components]
Name: comp1; Description: "{cm:CompName1}";
Name: comp2; Description: "{cm:CompName2}";
Name: comp3; Description: "{cm:CompName1}";
Name: comp4; Description: "{cm:CompName2}";
Name: comp5; Description: "{cm:CompName1}";
Name: comp6; Description: "{cm:CompName2}";
[Files]
//===========================ПЕРВАЯ СТРАНИЦА ПОСЛЕ КОМПОНЕНТОВ================================\\
Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "TextRussian.isl"; Check: IsComponentsForm1(1)
Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "TextEnglish.isl"; Check: IsComponentsForm1(2)
Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "VoiceRussian.isl"; Check: IsComponentsForm1(4)
Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "VoiceEnglish.isl"; Check: IsComponentsForm1(5)
//===========================ВТОРАЯ СТРАНИЦА ПОСЛЕ КОМПОНЕНТОВ================================\\
Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "TextRussian.isl"; Check: IsComponentsForm2(1)
Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "TextEnglish.isl"; Check: IsComponentsForm2(2)
Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "VoiceRussian.isl"; Check: IsComponentsForm2(4)
Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "VoiceEnglish.isl"; Check: IsComponentsForm2(5)
//===========================ТРЕТЬЯ СТРАНИЦА ПОСЛЕ КОМПОНЕНТОВ================================\\
Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "TextRussian.isl"; Check: IsComponentsForm3(1)
Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "TextEnglish.isl"; Check: IsComponentsForm3(2)
Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "VoiceRussian.isl"; Check: IsComponentsForm3(4)
Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "VoiceEnglish.isl"; Check: IsComponentsForm3(5)
[Code]
var
  ComponentsPage1,ComponentsPage2,ComponentsPage3: TWizardPage;
  SelectComponentsLabel1,SelectComponentsLabel2,SelectComponentsLabel3: TNewStaticText;
  ComponentsList1,ComponentsList2,ComponentsList3: TNewCheckListBox;
procedure ComponentsForm1;
begin
  ComponentsPage1 := CreateCustomPage(wpSelectComponents, 'ПЕРВАЯ СТРАНИЦА ПОСЛЕ КОМПОНЕНТОВ', SetupMessage(msgSelectComponentsDesc));
//========================================================================\\
  SelectComponentsLabel1 := TNewStaticText.Create(WizardForm);
  with SelectComponentsLabel1 do
  begin
    Parent := ComponentsPage1.Surface;
    SetBounds(ScaleX(0), ScaleY(0), ScaleX(417), ScaleY(42));
    AutoSize := False;
    WordWrap := True;
    Caption := SetupMessage(msgSelectComponentsLabel2);
  end;
//========================================================================\\
  ComponentsList1 := TNewCheckListBox.Create(WizardForm);
  with ComponentsList1 do
  begin
    Parent := ComponentsPage1.Surface;
    SetBounds(ScaleX(0), ScaleY(61), ScaleX(417), ScaleY(169));
    AddCheckBox(CustomMessage('CompSubtitlesLng'), '', 0, True, False, False, True, nil);  //0
      AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil);                //1
      AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil);               //2
    AddCheckBox(CustomMessage('CompVoiceLng'), '', 0, True, False, False, True, nil);      //3
      AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil);                //4
      AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil);               //5
  end;
end;
procedure ComponentsForm2;
begin
  ComponentsPage2 := CreateCustomPage(ComponentsPage1.ID, 'ВТОРАЯ СТРАНИЦА ПОСЛЕ КОМПОНЕНТОВ', SetupMessage(msgSelectComponentsDesc));
//========================================================================\\
  SelectComponentsLabel2 := TNewStaticText.Create(WizardForm);
  with SelectComponentsLabel2 do
  begin
    Parent := ComponentsPage2.Surface;
    SetBounds(ScaleX(0), ScaleY(0), ScaleX(417), ScaleY(42));
    AutoSize := False;
    WordWrap := True;
    Caption := SetupMessage(msgSelectComponentsLabel2);
  end;
//========================================================================\\
  ComponentsList2 := TNewCheckListBox.Create(WizardForm);
  with ComponentsList2 do
  begin
    Parent := ComponentsPage2.Surface;
    SetBounds(ScaleX(0), ScaleY(61), ScaleX(417), ScaleY(169));
    AddCheckBox(CustomMessage('CompSubtitlesLng'), '', 0, True, False, False, True, nil);  //0
      AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil);                //1
      AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil);               //2
    AddCheckBox(CustomMessage('CompVoiceLng'), '', 0, True, False, False, True, nil);      //3
      AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil);                //4
      AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil);               //5
  end;
end;
procedure ComponentsForm3;
begin
  ComponentsPage3 := CreateCustomPage(ComponentsPage2.ID, 'ТРЕТЬЯ СТРАНИЦА ПОСЛЕ КОМПОНЕНТОВ', SetupMessage(msgSelectComponentsDesc));
//========================================================================\\
  SelectComponentsLabel3 := TNewStaticText.Create(WizardForm);
  with SelectComponentsLabel3 do
  begin
    Parent := ComponentsPage3.Surface;
    SetBounds(ScaleX(0), ScaleY(0), ScaleX(417), ScaleY(42));
    AutoSize := False;
    WordWrap := True;
    Caption := SetupMessage(msgSelectComponentsLabel2);
  end;
//========================================================================\\
  ComponentsList3 := TNewCheckListBox.Create(WizardForm);
  with ComponentsList3 do
  begin
    Parent := ComponentsPage3.Surface;
    SetBounds(ScaleX(0), ScaleY(61), ScaleX(417), ScaleY(169));
    AddCheckBox(CustomMessage('CompSubtitlesLng'), '', 0, True, False, False, True, nil);  //0
      AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil);                //1
      AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil);               //2
    AddCheckBox(CustomMessage('CompVoiceLng'), '', 0, True, False, False, True, nil);      //3
      AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil);                //4
      AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil);               //5
  end;
end;
function IsComponentsForm1(CompIndex: Integer): Boolean;
var
  i: Integer;
begin
  Result := False;
  for i := 0 to ComponentsList1.ItemCount - 1 do
  begin
    if CompIndex <= (ComponentsList1.ItemCount - 1) then
      Result := ComponentsList1.Checked[CompIndex];
  end;
end;
//========================================================================\\
function IsComponentsForm2(CompIndex: Integer): Boolean;
var
  i: Integer;
begin
  Result := False;
  for i := 0 to ComponentsList2.ItemCount - 1 do
  begin
    if CompIndex <= (ComponentsList2.ItemCount - 1) then
      Result := ComponentsList2.Checked[CompIndex];
  end;
end;
//========================================================================\\
function IsComponentsForm3(CompIndex: Integer): Boolean;
var
  i: Integer;
begin
  Result := False;
  for i := 0 to ComponentsList3.ItemCount - 1 do
  begin
    if CompIndex <= (ComponentsList3.ItemCount - 1) then
      Result := ComponentsList3.Checked[CompIndex];
  end;
end;
procedure InitializeWizard();
begin
  ComponentsForm1;
  ComponentsForm2;
  ComponentsForm3;
end;

Edited by Dark_Knight_MiX
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Ребята, а как можно защитить свой инсталлятор от копирования и декомпиляции ?

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...