Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Dodakaedr

Ветеран


Сообщения: 863
Благодарности: 262

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar SHFileOperation.rar
(2.1 Kb, 16 просмотров)

Цитата Kashtan007:
Всем привет. Мне нужно реализовать 2 чекбокса на странице "Каталог" в установщике.
Т.е. у нас есть полоска выбора пути (куда устанавливать наши компоненты) и нужно чтобы под ней было 2 чекбокса.
1 чекбокс: Удаление старых компонентов. Т.е. у меня есть папка res_mods... Нужно чтобы при выборе этого чекбокса очищало папку res_mods от всего содержимого.
2 чекбокс: Бекап файлов. У меня есть папка res_mods, но допустим в ней нужные компоненты и я хочу их сохранить. То при выборе этого чекбокса будет создана копия папки res_mods которая будет называться old_res_mods. »
Попробуйте вот так:
читать дальше »
Код: Выделить весь код
#include "SHFileOperation.iss"

[Setup]
AppName=Моя программа
AppVersion=1.5
DefaultDirName={pf}\Моя программа

[Languages]
Name: "RU"; MessagesFile: "compiler:Languages\Russian.isl"

[ Code]
var
ModCheck, BackupCheck: TNewCheckBox;

procedure  InitializeWizard;
begin
   ModCheck:= TNewCheckBox.Create(PageFromID(wpSelectDir));
   ModCheck.Width := PageFromID(wpSelectDir).SurfaceWidth;
   ModCheck.Parent := PageFromID(wpSelectDir).Surface;
   ModCheck.Caption:='Удалить все старые моды';
   ModCheck.left:=wizardForm.DirEdit.left;
   ModCheck.Top:=wizardForm.DirEdit.top + ScaleY(30);

   BackupCheck:= TNewCheckBox.Create(PageFromID(wpSelectDir));
   BackupCheck.Width := PageFromID(wpSelectDir).SurfaceWidth;
   BackupCheck.Parent := PageFromID(wpSelectDir).Surface;
   BackupCheck.Caption:='Сохранить резервную копию старых модов';
   BackupCheck.left:=wizardForm.DirEdit.left;
   BackupCheck.Top:=ModCheck.top + ScaleY(30);
end;

procedure CurStepChanged (CurStep: TSetupStep);
begin
 if CurStep=ssInstall then
 if BackupCheck.Checked then
 begin
 CopyDir(ExpandConstant('{app}\res mods\'),ExpandConstant('{app}\old res mods'));
end;

if ModCheck.Checked then
begin
  DelTree(ExpandConstant('{app}\res mods\*'), False, True, True);
end;
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
 if CurUninstallStep = usPostUninstall then
begin
  MoveDir(ExpandConstant('{app}\old res mods\'), ExpandConstant('{app}\res mods'));
  RemoveDir(ExpandConstant('{app}\old res mods'));
end;
end;

-------
Inno Setup 5 Ultra Unicode

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:28, 22-05-2014 | #746