Jump to content
Korean Random
EvilAlex

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

Recommended Posts

ВСЕМ Привет!!!

увы я не гуру в Inno Setup

помогите сделать встроенный wot_tweaker в установщике, то есть мне нужно что бы после страницы модов шла страница "Повысить FPS" с чебоксами отключения различных эффектов

 

 

Share this post


Link to post

Short link
Share on other sites

ВСЕМ Привет!!!

увы я не гуру в Inno Setup

помогите сделать встроенный wot_tweaker в установщике, то есть мне нужно что бы после страницы модов шла страница "Повысить FPS" с чебоксами отключения различных эффектов

Вот посмотри я ссылку давал .. готовый модпак и там исходник.. возьми и посмотри, скопируй , поизучай! https://koreanrandom.com/forum/topic/9050-%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%B8%D0%BD%D1%81%D1%82%D0%B0%D0%BB%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D0%BE%D0%B2-%D0%B4%D0%BB%D1%8F-%D0%BC%D0%BE%D0%B4%D0%BF%D0%B0%D0%BA%D0%BE%D0%B2-%D0%BD%D0%B0-%D0%B1%D0%B0%D0%B7%D0%B5-inno-setup/page-240?do=findComment&comment=395128

  • Upvote 1
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

ВСЕМ Привет!!!

увы я не гуру в Inno Setup

помогите сделать встроенный wot_tweaker в установщике, то есть мне нужно что бы после страницы модов шла страница "Повысить FPS" с чебоксами отключения различных эффектов

 

я тоже не гуру но можно сделать просто вот так)))

 

[Setup]
AppName="ххх"
AppVersion=1.0
DefaultDirName=C:\Games\World_of_Tanks\
AppendDefaultDirName=no

[Tasks]
Name: "K"; Description: "WoT Tweaker Plus - для повышения FPS";  Flags: unchecked;
Name: "K\2"; Description: "Увеличение максимальной дальности видимости"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\3"; Description: "Удаление тумана на всех картах"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\4"; Description: "Отключить эффекты погоды и дым на картах"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\5"; Description: "Отключить эффект взрыва снарядов и попадания в объекты"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\6"; Description: "Отключить облака"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\7"; Description: "Отключить дым от уничтоженных танков"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\8"; Description: "Отключить эффекты попадания по танкам"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\9"; Description: "Отключить тень под танками"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\10"; Description: "Отключить дым и пламя от выстрелов"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\11"; Description: "Отключить дым из выхлопных труб танков"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\12"; Description: "Отключить эффект движения деревьев"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;

[Files]

/////////////////////////////////////////////////////////////////////  WoT Tweaker Plus   ///////////////////////////

Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\2 Увеличение максимальной дальности видимости\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\2; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\3 Удаление тумана на всех картах\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\3; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\4 Отключить эффекты проявления погоды и дым от объектов на картах\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\4; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\5 Отключить эффект взрыва снарядов и попадания в объекты\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\5; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\6 Отключить облака\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\6; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\7 Отключить дым от уничтоженных танков\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\7; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\8 Отключить эффекты попадания по танкам\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\8; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\9 Отключить тень под танками\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\9; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\10 Отключить дым и пламя от выстрелов\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\10; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\11 Отключить дым из выхлопных труб танков\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\11; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\12 Отключить эффект движения деревьев\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\12; BeforeInstall:
 

 

и после модов у тебя будет отдельная страница для твикера)))

Edited by ЛОМ
  • Upvote 2

Share this post


Link to post

Short link
Share on other sites

я тоже не гуру но можно сделать просто вот так)))

 

[Setup]
AppName="ххх"
AppVersion=1.0
DefaultDirName=C:\Games\World_of_Tanks\
AppendDefaultDirName=no

[Tasks]
Name: "K"; Description: "WoT Tweaker Plus - для повышения FPS";  Flags: unchecked;
Name: "K\2"; Description: "Увеличение максимальной дальности видимости"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\3"; Description: "Удаление тумана на всех картах"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\4"; Description: "Отключить эффекты погоды и дым на картах"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\5"; Description: "Отключить эффект взрыва снарядов и попадания в объекты"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\6"; Description: "Отключить облака"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\7"; Description: "Отключить дым от уничтоженных танков"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\8"; Description: "Отключить эффекты попадания по танкам"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\9"; Description: "Отключить тень под танками"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\10"; Description: "Отключить дым и пламя от выстрелов"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\11"; Description: "Отключить дым из выхлопных труб танков"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;
Name: "K\12"; Description: "Отключить эффект движения деревьев"; GroupDescription: "Отключение эффектов:"; Flags: unchecked;

[Files]

/////////////////////////////////////////////////////////////////////  WoT Tweaker Plus   ///////////////////////////

Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\2 Увеличение максимальной дальности видимости\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\2; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\3 Удаление тумана на всех картах\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\3; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\4 Отключить эффекты проявления погоды и дым от объектов на картах\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\4; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\5 Отключить эффект взрыва снарядов и попадания в объекты\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\5; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\6 Отключить облака\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\6; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\7 Отключить дым от уничтоженных танков\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\7; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\8 Отключить эффекты попадания по танкам\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\8; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\9 Отключить тень под танками\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\9; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\10 Отключить дым и пламя от выстрелов\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\10; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\11 Отключить дым из выхлопных труб танков\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\11; BeforeInstall:
Source: "F:\А ДЛЯ СБОРКИ\МОДЫ\МОДЫ\0 1 WoT Tweaker Plus\12 Отключить эффект движения деревьев\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: K\12; BeforeInstall:
 

 

и после модов у тебя будет отдельная страница для твикера)))

 

 

СПАСИБО БОЛЬШОЕ )))  только можно как нибудь изменить размер содержимого окна. т.е. у меня получилось не на все окно ... 

post-18777-0-93255900-1498945855_thumb.png

Share this post


Link to post

Short link
Share on other sites

СПАСИБО БОЛЬШОЕ )))  только можно как нибудь изменить размер содержимого окна. т.е. у меня получилось не на все окно ... 

В редакторе форм инно поменяй Таск ширину и высоту.... как надо растяни

Edited by Nowik1971
  • Upvote 1
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites
СПАСИБО БОЛЬШОЕ )))  только можно как нибудь изменить размер содержимого окна. т.е. у меня получилось не на все окно ... 

 

в редакторе форм. В  Select TasksPage  просто растяни на сколько тебе нужно.

 

ответили уже)) не заметил))

Edited by ЛОМ
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

 

 

with WizardForm.TasksList do

begin

Left := ScaleX(172);

Top := ScaleY(60);

Width := ScaleX(444);

Height := ScaleY(228);

Color := clBlack;

Font.Color := clWhite;

Font.Height := -19;

Font.Name := 'Times New Roman';

OnClick := @TasksListClick;

ParentFont := False;

end;

 

 

 

в скрипте такое найди и меняй и двигай куда хочешь

Edited by sergy2010

Share this post


Link to post

Short link
Share on other sites

в редакторе форм. В  Select TasksPage  просто растяни на сколько тебе нужно.

 

ответили уже)) не заметил))

 

через редактор форм менял размер ... и получил код 

 

{ RedesignWizardFormBegin } // Не удалять эту строку!
// Не изменять эту секцию. Она создана автоматически.
procedure RedesignWizardForm;
begin
  with WizardForm.TasksList do
  begin
    Width := ScaleX(600);
    Height := ScaleY(350);
  end;

{ ReservationBegin }
  // Вы можете добавить ваш код здесь.

{ ReservationEnd }
end;
// Не изменять эту секцию. Она создана автоматически.
{ RedesignWizardFormEnd } // Не удалять эту строку!

 

при компиляции выдает ошибку 

вот код 

 

[Code]

//--------------- ФАК ---------------\\
var
InfoForm: TSetupForm;
Info, Ok: TButton;
InfoBefore: TRichEditViewer;
ReadmeRu,ReadmeEn: AnsiString;

procedure Okclick(Sender: TObject);
begin
  InfoForm.Close;
  WizardForm.Enabled:=True;
end;

procedure FormClose(Sender: TObject; var Action: TCloseAction);
begin
  WizardForm.Enabled:=true;
end;

procedure InfoClick(Sender: TObject);
begin
InfoForm:= CreateCustomForm();
with InfoForm do begin
  ClientWidth := ScaleX(600);
  ClientHeight := ScaleY(400);
  CenterInsideControl(WizardForm, False);
  Caption:='Страница FAQ';
  onClose:=@FormClose;
Ok:=tbutton.create(InfoForm)
with Ok do begin
  SetBounds(ScaleX(490),ScaleY(370),ScaleX(80),ScaleY(25));
  parent:=InfoForm;
  Caption:='Закрыть';
  onclick:=@OKclick;
  end;
InfoBefore:= TRichEditViewer.Create(InfoForm);
with InfoBefore do begin
  SetBounds(ScaleX(10),ScaleY(10),ScaleX(580),ScaleY(355));
  Parent:= InfoForm;
  //    ParentColor := True;
  //    Color:= WizardForm.Color;
  //    BorderStyle:= bsNone;
  ScrollBars:= ssVertical;
  ReadOnly:= true;
  RTFText:= ReadmeRu
end;
  InfoForm.Show;
  WizardForm.Enabled:=false;
end;
end;

procedure InitializeWizard3();
begin
  ExtractTemporaryFile('ReadMeRu.rtf');
  LoadStringFromFile(ExpandConstant('{tmp}')+'\ReadMeRu.rtf', ReadmeRu);
  Info:=tbutton.create(WizardForm);
  with Info do begin
  Parent:=WizardForm;
  SetBounds(ScaleX(115),ScaleY(497),ScaleX(80),ScaleY(23));
  Caption:='F.A.Q';
  OnClick:=@InfoClick;
end;
end;
//--------------- ФАК ---------------\\


function MyDirName(S:String): String;
var
  InsPath: String;
  er: boolean;
  myFile:String;
begin
  Result:=ExpandConstant('C:\Games\World_of_Tanks\'); //если ключа нет то будем ставить сюда
  er := RegQueryStringValue(HKLM, 'SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1', 'InstallLocation', InsPath);
  if er and (InsPath<>'') then //если ключ существует и там что-то записано
  begin
    Result := InsPath;
  end;
end;

//==== Проверка  WoT ====\\
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
case CurPageID of
wpSelectDir:
if not FileExists(ExpandConstant('{app}\WorldOfTanks.exe')) then
begin
MsgBox('Не верно указана папка с игрой World_of_Tanks!', mbError, MB_OK);
Result := False;
end;
end;
end;
//==== Проверка  WoT ====\\

//==== Переход на сайт ====\\
Procedure GoToSite(CurStep: TSetupStep);
var
 RC: Integer;
begin
 if CurStep = ssDone then
 begin
  ShellExec('', '{#MyAppURL}', '' , '', SW_SHOW, ewNoWait, RC);
 end;
end;
//==== Переход на сайт ====\\


procedure LogoOnClick(Sender: TObject);
var ResCode: Integer;
begin
  ShellExec('', '{#MyAppURL}', '' , '', SW_SHOW, ewNoWait, ResCode)
end;
var
  BitmapImage1: TBitmapImage;
procedure RedesignWizardForm;
var
  i: integer;
  BtnPanel: TPanel;
  BtnImage: TBitmapImage;
begin
  ExtractTemporaryFile('logo_vk.bmp')
  BtnPanel:=TPanel.Create(WizardForm)
with BtnPanel do begin
  Left:=20
  Top:=494
  Width:=85
  Height:=27
  Cursor:=crHand
  OnClick:=@logoOnClick
  Parent:=WizardForm
end;
  BtnImage:=TBitmapImage.Create(WizardForm)
with BtnImage do begin
  AutoSize:=True;
  Enabled:=False;
  Bitmap.LoadFromFile(ExpandConstant('{tmp}')+'\logo_vk.bmp')
  Parent:=BtnPanel
  end;
{ BitmapImage1 }
BitmapImage1 := TBitmapImage.Create(WizardForm);
with BitmapImage1 do
begin
  Parent := WizardForm.SelectDirPage;
  Left := ScaleX(0);
  Top := ScaleY(115);
  Width := ScaleX(620);
  Height := ScaleY(260);
  ExtractTemporaryFile('WizardForm.BitmapImage1.bmp');
  Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage1.bmp'));
  end;
end;


function WindowResize(): Boolean;
var
  HeightOffset, WidthOffset: Integer;
begin
  HeightOffset:=170;
  WidthOffset:=200;

  WizardForm.Height:=WizardForm.Height + HeightOffset;
  WizardForm.Width:=WizardForm.Width + WidthOffset;

  WizardForm.NextButton.Top:=WizardForm.NextButton.Top + HeightOffset;
  WizardForm.BackButton.Top:=WizardForm.BackButton.Top + HeightOffset;
  WizardForm.CancelButton.Top:=WizardForm.CancelButton.Top + HeightOffset;
  WizardForm.NextButton.Left:=WizardForm.NextButton.Left + WidthOffset;
  WizardForm.BackButton.Left:=WizardForm.BackButton.Left + WidthOffset;
  WizardForm.CancelButton.Left:=WizardForm.CancelButton.Left + WidthOffset;

  WizardForm.OuterNotebook.Height:=WizardForm.OuterNotebook.Height + HeightOffset;
  WizardForm.InnerNotebook.Height:=WizardForm.InnerNotebook.Height + HeightOffset;
  WizardForm.OuterNotebook.Width:=WizardForm.OuterNotebook.Width + WidthOffset;
  WizardForm.InnerNotebook.Width:=WizardForm.InnerNotebook.Width + WidthOffset;
  WizardForm.WizardSmallBitmapImage.Left:= WizardForm.WizardSmallBitmapImage.Left + WidthOffset;
  WizardForm.Bevel.Top:=WizardForm.Bevel.Top + HeightOffset;
  WizardForm.BeveledLabel.Top:=WizardForm.BeveledLabel.Top + HeightOffset;
  WizardForm.Bevel.Width:=WizardForm.Bevel.Width + WidthOffset;
  WizardForm.Bevel1.Width:=WizardForm.Bevel1.Width + WidthOffset;
  WizardForm.MainPanel.Width:=WizardForm.MainPanel.Width + WidthOffset;
  WizardForm.BeveledLabel.Width:=WizardForm.BeveledLabel.Width + WidthOffset;
  WizardForm.Center;

{ /// --- Раскомментировать при желании ---- ///
  WizardForm.WelcomeLabel1.Hide;
  WizardForm.WelcomeLabel2.Hide;
  WizardForm.FinishedLabel.Hide;
  WizardForm.FinishedHeadingLabel.Hide;
  WizardForm.WizardBitmapImage.Width:=600;
  WizardForm.WizardBitmapImage.Height:=400;
  WizardForm.WizardBitmapImage2.Width:=600;
  WizardForm.WizardBitmapImage2.Height:=400;
  WizardForm.PageNameLabel.Hide;
  WizardForm.PageDescriptionLabel.Hide;
  WizardForm.WizardSmallBitmapImage.Top:=0;
  WizardForm.WizardSmallBitmapImage.Left:=0;
  WizardForm.WizardSmallBitmapImage.Width:=WizardForm.Width;
  WizardForm.WizardSmallBitmapImage.Height:=58;
  /// --- Конец ---- ///
}
  WizardForm.WelcomeLabel1.Hide;
  WizardForm.WelcomeLabel2.Hide;
  WizardForm.WizardBitmapImage.Width:=697;
  WizardForm.WizardBitmapImage.Height:=483;

  WizardForm.FinishedHeadingLabel.Hide;
  WizardForm.FinishedLabel.Hide;
  WizardForm.YesRadio.Hide;
  WizardForm.NoRadio.Hide;
  WizardForm.WizardBitmapImage2.Width:=697;
  WizardForm.WizardBitmapImage2.Height:=483;

  WizardForm.PageNameLabel.Hide;
  WizardForm.PageDescriptionLabel.Hide;
  WizardForm.WizardSmallBitmapImage.Top:=0;
  WizardForm.WizardSmallBitmapImage.Left:=0;
  WizardForm.WizardSmallBitmapImage.Width:=697;
  WizardForm.WizardSmallBitmapImage.Height:=58;

  WizardForm.WelcomeLabel1.Width:=WizardForm.WelcomeLabel1.Width + WidthOffset;
  WizardForm.WelcomeLabel1.Height:=WizardForm.WelcomeLabel1.Height + HeightOffset;
  WizardForm.WelcomeLabel1.Width:=WizardForm.WelcomeLabel1.Width + WidthOffset;

  WizardForm.WelcomeLabel2.Width:=WizardForm.WelcomeLabel2.Width + WidthOffset;
  WizardForm.WelcomeLabel2.Height:=WizardForm.WelcomeLabel2.Height + HeightOffset;
  WizardForm.WelcomeLabel2.Width:=WizardForm.WelcomeLabel2.Width + WidthOffset;


  WizardForm.LicenseLabel1.Width:=WizardForm.LicenseLabel1.Width + WidthOffset;
  WizardForm.LicenseMemo.Height:=WizardForm.LicenseMemo.Height + HeightOffset;
  WizardForm.LicenseMemo.Width:=WizardForm.LicenseMemo.Width + WidthOffset;
  WizardForm.LicenseNotAcceptedRadio.Top:=WizardForm.LicenseNotAcceptedRadio.Top + HeightOffset;
  WizardForm.LicenseAcceptedRadio.Top:=WizardForm.LicenseAcceptedRadio.Top + HeightOffset;

  WizardForm.InfoBeforeClickLabel.Width:=WizardForm.InfoBeforeClickLabel.Width + WidthOffset;
  WizardForm.InfoBeforeMemo.Height:=WizardForm.InfoBeforeMemo.Height + HeightOffset;
  WizardForm.InfoBeforeMemo.Width:=WizardForm.InfoBeforeMemo.Width + WidthOffset;

  WizardForm.SelectDirLabel.Width:=WizardForm.SelectDirLabel.Width + WidthOffset;
  WizardForm.SelectDirBrowseLabel.Width:=WizardForm.SelectDirBrowseLabel.Width + WidthOffset;
  WizardForm.DiskSpaceLabel.Top:=WizardForm.DiskSpaceLabel.Top + HeightOffset;
  WizardForm.DirBrowseButton.Left:=WizardForm.DirBrowseButton.Left + HeightOffset;
  WizardForm.DirEdit.Width:=WizardForm.DirEdit.Width + HeightOffset;

  WizardForm.ComponentsDiskSpaceLabel.Top:=WizardForm.ComponentsDiskSpaceLabel.Top + HeightOffset;
  WizardForm.SelectComponentsLabel.Width:=WizardForm.SelectComponentsLabel.Width + WidthOffset;
  WizardForm.ComponentsList.Height:=WizardForm.ComponentsList.Height + HeightOffset;
  WizardForm.ComponentsList.Width:=WizardForm.ComponentsList.Width + WidthOffset;

  WizardForm.ReadyLabel.Width:=WizardForm.ReadyLabel.Width + WidthOffset;
  WizardForm.ReadyMemo.Height:=WizardForm.ReadyMemo.Height + HeightOffset;
  WizardForm.ReadyMemo.Width:=WizardForm.ReadyMemo.Width + WidthOffset;

  WizardForm.ProgressGauge.Width:=WizardForm.ProgressGauge.Width + HeightOffset;
  WizardForm.FilenameLabel.Width:=WizardForm.FilenameLabel.Width + HeightOffset;
  WizardForm.StatusLabel.Width:=WizardForm.StatusLabel.Width + HeightOffset;
end;

/// --- /// --- /// --- /// --- /// --- /// --- /// --- /// --- /// --- /// --- /// --- ///

type
  TComponentDesc = record
    Description: String;
    ImageName: String;
    Index: Integer;
  end;

var
  CompDescs: array of TComponentDesc;
  CompDescPanel, CompDescImgPanel: TPanel;
  CompDescText: array[1..2] of TLabel;
  CompIndex, LastIndex: Integer;
  CompDescImg: TBitmapImage;

procedure ShowCompDescription(Sender: TObject; X, Y, Index: Integer; Area: TItemArea);
var
  i: Integer;
begin
  if Index = LastIndex then Exit;
  CompIndex := -1;
  for i := 0 to GetArrayLength(CompDescs) -1 do
  begin
    if (CompDescs[i].Index = Index) then
    begin
      CompIndex := i;
      Break;
    end;
  end;
  if (CompIndex >= 0) and (Area = iaItem) then
  begin
    if not FileExists(ExpandConstant('{tmp}\') + CompDescs[CompIndex].ImageName) then
      ExtractTemporaryFile(CompDescs[CompIndex].ImageName);
    CompDescImg.Bitmap.LoadFromFile(ExpandConstant('{tmp}\') + CompDescs[CompIndex].ImageName);
    CompDescImg.Show;

    CompDescText[2].Caption := CompDescs[CompIndex].Description;
    CompDescText[2].Enabled := True;
  end else
  begin
    CompDescText[2].Caption := CustomMessage('ComponentsInfo');
    CompDescText[2].Enabled := False;
    CompDescImg.Hide;
  end;
  LastIndex := Index;
end;

procedure CompListMouseLeave(Sender: TObject);
begin
  CompDescImg.Hide;
  CompDescText[2].Caption := CustomMessage('ComponentsInfo');
  CompDescText[2].Enabled := False;
  LastIndex := -1;
end;

procedure AddCompDescription(AIndex: Integer; ADescription: String; AImageName: String);
var
  i: Integer;
begin
  i := GetArrayLength(CompDescs);
  SetArrayLength(CompDescs, i + 1);
  CompDescs[i].Description := ADescription;
  CompDescs[i].ImageName := AImageName;
  CompDescs[i].Index := AIndex - 1
end;

procedure InitializeWizard();
begin
  InitializeWizard1(); {из BackUpPage.iss}
  //InitializeWizard2(); {из Music.iss}
  InitializeWizard3();
  RedesignWizardForm;
  WindowResize();

begin
  WizardForm.SelectComponentsLabel.Hide;
  WizardForm.TypesCombo.Hide;
  WizardForm.ComponentsList.SetBounds(ScaleX(260), ScaleY(20), ScaleX(357), ScaleY(333));
  WizardForm.ComponentsList.OnItemMouseMove:= @ShowCompDescription;
  WizardForm.ComponentsList.OnMouseLeave := @CompListMouseLeave;

  CompDescImgPanel := TPanel.Create(WizardForm);
  with CompDescImgPanel do
  begin
    Parent := WizardForm.SelectComponentsPage;
    SetBounds(ScaleX(0), ScaleY(20), ScaleX(253), ScaleY(203));  //рамка картинки
    BevelInner := bvLowered;
  end;

  CompDescText[1] := TLabel.Create(WizardForm);
  with CompDescText[1] do
  begin
    Parent := CompDescImgPanel;
    SetBounds(ScaleX(5), ScaleY(5), CompDescImgPanel.Width - ScaleX(10), CompDescImgPanel.Height - ScaleY(10));
    AutoSize := False;
    WordWrap := True;
    Enabled := False;
    Caption := CustomMessage('ComponentsImgInfo');
  end;

  CompDescImg := TBitmapImage.Create(WizardForm);
  with CompDescImg do
  begin
    Parent := CompDescImgPanel;
    SetBounds(ScaleX(5), ScaleY(5), CompDescImgPanel.Width - ScaleX(10), CompDescImgPanel.Height - ScaleY(10));
    Stretch := True;
    Hide;
  end;

  CompDescPanel := TPanel.Create(WizardForm);
  with CompDescPanel do
  begin
    Parent := WizardForm.SelectComponentsPage;
    SetBounds(ScaleX(0), ScaleY(230), ScaleX(253), ScaleY(123));  //Нижния рамка
    BevelInner := bvLowered;
  end;

  CompDescText[2] := TLabel.Create(WizardForm);
  with CompDescText[2] do
  begin
    Parent := CompDescPanel;
    SetBounds(ScaleX(5), ScaleY(5), CompDescPanel.Width - ScaleX(10), CompDescPanel.Height - ScaleY(10));
    AutoSize := False;
    WordWrap := True;
    Enabled := False;
    Caption := CustomMessage('ComponentsInfo');
  end;

 

может кто поможет ... 

 

или возможно проще создать вторую страницу компонентов 

post-18777-0-52366400-1498989010_thumb.png

Share this post


Link to post

Short link
Share on other sites

давай-ка побеседуем в ЛС. я тебе помогу.

 

СПАСИБО БОЛЬШОЕ за помощь, удачи тебе ;)

  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

всем привет. подскажите как сделать так чтобы по любому всё удалялось из папок модс и ресмодс при деинсталляции? просто файлы скачанные из инета он оставляет почему то. у меня ша так в коде прописано

function BackupCheck_2(): Boolean;
begin
  If DeleteRadioButton.Checked then
begin
  DelTree(ExpandConstant('{app}\res_mods'), True, True, True);
  ForceDirectories(ExpandConstant('{app}\res_mods\{#Patch}'));


  DelTree(ExpandConstant('{app}\mods'), True, True, True);
  ForceDirectories(ExpandConstant('{app}\mods\{#Patch}'));
end;
end;

Share this post


Link to post

Short link
Share on other sites

а зачем вот это принудительная директория

ForceDirectories(ExpandConstant('{app}\res_mods\{#Patch}'));

 

разве не это должно быть 

CreateDir(ExpandConstant('{app}\res_mods\{#Patch}'));

типа удалил и создаёт заново папки

Edited by sergy2010

Share this post


Link to post

Short link
Share on other sites

как сделать так чтобы по любому всё удалялось из папок модс и ресмодс при деинсталляции?

Так:

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
 if CurUninstallStep = usPostUninstall then
  begin
   DelTree(ExpandConstant('{app}\res_mods'), True, True, True);
   DelTree(ExpandConstant('{app}\mods'), True, True, True);
   ForceDirectories(ExpandConstant('{app}\res_mods\{#Patch}'));
   ForceDirectories(ExpandConstant('{app}\mods\{#Patch}'));
  end;
end;

Или так:

[UninstallDelete]
Type: filesandordirs; Name: "{app}\res_mods\{#Patch}"
Type: filesandordirs; Name: "{app}\res_mods\configs"
Type: filesandordirs; Name: "{app}\mods\{#Patch}"
Type: filesandordirs; Name: "{app}\mods\configs" 

Edited by Gad575
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Так:

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
 if CurUninstallStep = usPostUninstall then
  begin
   DelTree(ExpandConstant('{app}\res_mods'), True, True, True);
   DelTree(ExpandConstant('{app}\mods'), True, True, True);
   ForceDirectories(ExpandConstant('{app}\res_mods\{#Patch}'));
   ForceDirectories(ExpandConstant('{app}\mods\{#Patch}'));
  end;
end;

Или так:

[UninstallDelete]
Type: filesandordirs; Name: "{app}\res_mods\{#Patch}"
Type: filesandordirs; Name: "{app}\res_mods\configs"
Type: filesandordirs; Name: "{app}\mods\{#Patch}"
Type: filesandordirs; Name: "{app}\mods\configs" 

как всегда помог!!! спасибо БОЛЬШОЕ )))

и еще вопросик)) а как сделать чтобы удалял и саму папку деинсталляции? у меня отдельная папка с названием пака и в ней уже файл удаления лежит. и вот надо чтобы он и эту папку тоже полностью удалял.

Share this post


Link to post

Short link
Share on other sites

точно также, как и в примерах моих

точняк.  тупанул))) всё получилось. спасибо еще раз!

Edited by ЛОМ

Share this post


Link to post

Short link
Share on other sites

как реализовать такой значок в компонентах 

если с помощью шрифта то какие символы

post-36801-0-89228300-1500333365.png

Share this post


Link to post

Short link
Share on other sites

Привет всем! Стараюсь часто не беспокоить, но туплю чего-то. Помогите пожалуйста сделать несколько страниц для компонентов. 

Share this post


Link to post

Short link
Share on other sites

Привет всем! Стараюсь часто не беспокоить, но туплю чего-то. Помогите пожалуйста сделать несколько страниц для компонентов. 

не это? https://koreanrandom.com/forum/topic/9050-создание-инсталляторов-для-модпаков-на-базе-inno-setup/?p=366786

вот тут точно всё как должно расписано))  https://koreanrandom.com/forum/topic/9050-создание-инсталляторов-для-модпаков-на-базе-inno-setup/?p=274586

Edited by ЛОМ

Share this post


Link to post

Short link
Share on other sites

Спасибо! Как-то пропустил, все изи там , а я туплю) Только привязать к моему скрипту будет пот)

Блин, фиг его под мой скрипт переделаешь!

Edited by shefer

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...