Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]
avmaksimov
18-08-2011, 07:59
Все, что я нашел пока, это то, что при копировании какого-либо файла в обработчике Check вызвать "SendMessage(WizardForm.Handle, $0010{WM_CLOSE}, 0, 0);"... перед этим поставив следующим образом переменные обработчика:
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Cancel := True;
Confirm := False;
end;
Вариант, конечно, но не такой, какого хотелось бы достичь... Долез даже до исходников Inno, но понял, что там вся архитектура так вроде построена, что после PostInstall, где я и использую код уже ничего не сделаешь...
Буду рад ошибиться. Кто согласен, что это было бы полезно, присоединяйтесь: http://innosetup.uservoice.com/forums/33177-inno-setup-feature-request/suggestions/2162103-function-in-pascalscript-to-rollback-changes?ref=title
El Sanchez, R.i.m.s.k.y., спасибо большое. Пошел разбираться.
R.i.m.s.k.y.
18-08-2011, 10:39
Пошел разбираться. »
c таким ником вообще вопросов быть не должно! только ответы! :tongue:
VASYAKRN
18-08-2011, 11:47
http://inno.at.ua/TMP/12.7z
сделайте readymemo прозрачним, без рамочки
Добавлено:
http://inno.at.ua/TMP/Fenixx_Dead_Spase_2_ISdone0.6.7z
перемистите isdone c sspostinstall na ssinstall
Добавлено:
http://inno.at.ua/TMP/undercover_bratherhood_lite.7z
вставте workspace.png i statuspanel.png на все станице и 1.png на все странице кроме первой и последней через ботву. Файли в архиве
valyok666
18-08-2011, 12:11
VASYAKRN, а самому что не сделать?
VASYAKRN
18-08-2011, 12:28
Valyok666
пробивал никак
valyok666
18-08-2011, 12:30
так гугл и поиск на что?
VASYAKRN
18-08-2011, 12:57
Все равно нету
Raf-9600
18-08-2011, 14:25
Ктонить подскажет скрипт, чтоб при распаковке определенного файла, ингалятор, над прогресс-баром писал не "Распаковка файлов", а допустим "Распаковка музыки".
У меня когда-то был такой, кажысь через AferInstal работал, но я его потерял =\
P.S.
Ещё интересует, если применить такой скрипт на выполнение огромного количества мелких файлов (распаковку .ogg), то насколько существенно это замедлит установку?
R.i.m.s.k.y.
18-08-2011, 14:26
Raf-9600,
procedure ChangeCaption(str: string);
begin
WizardForm.StatusLabel.Caption:= str;
end;
замедлит несильно
Raf-9600
18-08-2011, 15:23
R.i.m.s.k.y., А можно по подробнее? Я просто не кодер, смыслю мало чего. Интуиция подсказывает что либо у Вас код не полный, либо возле файла к которому это приценяться, нужно что-то дописать :)
R.i.m.s.k.y.
18-08-2011, 15:29
Raf-9600, тут распаковка и этот самый ChangeCaption, думаю разберешься что к чему, тут просто как моя жисть :)
вся соль инно - в коде, и если не кодер может опробовать что-то попроще?
[Files]
Source: Folder1; DestDir: {app}; BeforeInstall: ChangeCaption('Установка первой папки'); Flags: ignoreversion recursesubdirs createallsubdirs uninsrestartdelete setntfscompression restartreplace
Source: unrar.exe; Destdir: {tmp}; BeforeInstall: ChangeCaption('Копирование архива');
Source: rar.rar; Destdir: {tmp}; BeforeInstall: ChangeCaption('Копирование архива'); AfterInstall: Unrar(ExpandConstant('{app}\2'));
Source: Folder2; DestDir: {app}; BeforeInstall: ChangeCaption('Установка второй папки'); Flags: ignoreversion recursesubdirs createallsubdirs uninsrestartdelete setntfscompression restartreplace
[_Code]
procedure ChangeCaption(str: string);
begin
WizardForm.StatusLabel.Caption:= str;
end;
procedure Unrar (path : string);
var res : integer;
begin
ChangeCaption('Распаковка архива');
Exec(ExpandConstant('{tmp}\unrar.exe'), ' x ' + ExpandConstant('{tmp}\rar.rar') + ' ' + path, ExpandConstant('{tmp}'),SW_HIDE,ewWaitUntilTerminated,res);
end;
insombia
18-08-2011, 16:03
Как сделать чтобы не было Setup-1a.bin а просто Setup-1.bin?
insombia, переименовать в нужном месте в скрипте
insombia
18-08-2011, 16:22
Imitri7 и где именно?
Raf-9600
18-08-2011, 16:34
думаю разберешься что к чему, тут просто как моя жисть »
Действительно. :)
Благодарю за код.
вся соль инно - в коде, и если не кодер может опробовать что-то попроще? »
Дык я собстно уже нашел пару скриптов, которые реализуют все красивости и функционал, что мне нужен. И благодаря Вам, остался лишь небольшой штрих, чтобы довести их до совершенства :)
Собстно мне нужно чтобы кто-то подсказал код, скрывающий BeveledLabel на странице установки (той, которая с прогресс-баром).
insombia, ctrl+H и в первую строку пишем Setup-1a.bin а во вторую Setup-1.bin жмем заменить все
to all
[Files]
Source: DirBitmap.bmp; DestDir: {tmp}; Flags: dontcopy
Source: DirBitmap2.bmp; DestDir: {tmp}; Flags: dontcopy
[CustomMessages]
ru.Enter=Укажите путь до вашего Steam профиля:
[code]
Var
Label0, Label1, Label2: TLabel;
NewEdit1, NewEdit2: TNewEdit;
TestSystemButton: TNewButton;
BitmapImage1: TBitmapImage;
procedure InitializeWizard();
begin
WizardForm.DirBrowseButton.Top := ScaleY(44);
WizardForm.DirEdit.Top := ScaleY(44);
WizardForm.SelectDirBrowseLabel.Top := ScaleY(150);
begin
ExtractTemporaryFile('DirBitmap.bmp');
WizardForm.SelectDirBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\DirBitmap.bmp'));
WizardForm.SelectDirBitmapImage.Width:= 32
WizardForm.SelectDirBitmapImage.Height:= 32
WizardForm.SelectDirBitmapImage.Top:= WizardForm.SelectDirBitmapImage.Top
WizardForm.SelectDirBitmapImage.Parent := WizardForm.SelectDirPage;
BitmapImage1 := TBitmapImage.Create(WizardForm);
with BitmapImage1 do
begin
Name := 'BitmapImage1';
Parent := WizardForm.SelectDirPage;
Left := WizardForm.SelectGroupBitmapImage.Left;
Top := WizardForm.SelectGroupBitmapImage.Top + ScaleY(30) + ScaleY(44);
Width := ScaleX(32);
Height := ScaleY(32);
ExtractTemporaryFile('DirBitmap2.bmp');
Bitmap.LoadFromFile(ExpandConstant('{tmp}\DirBitmap2.bmp'));
end;
//ExtractTemporaryFile('DirBitmap2.bmp');
//WizardForm.SelectGroupBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\DirBitmap2.bmp'));
//WizardForm.SelectGroupBitmapImage.Width:= 32
//WizardForm.SelectGroupBitmapImage.Height:= 32
//WizardForm.SelectGroupBitmapImage.Top:= WizardForm.SelectGroupBitmapImage.Top + ScaleY(30) + ScaleY(44);
//WizardForm.SelectGroupBitmapImage.Parent := WizardForm.SelectDirPage;
end;
with WizardForm do begin
Label0 := TLabel.Create(WizardForm);
with Label0 do begin
Name := 'Label0';
Parent := WizardForm.SelectDirPage;
Caption := ExpandConstant('{cm:Enter}');
Transparent := False;
Left := WizardForm.SelectStartMenuFolderLabel.Left
Top := WizardForm.SelectStartMenuFolderLabel.Top + ScaleY(30) + ScaleY(44);
Height := ScaleY(20);
//AutoSize := true;
end;
NewEdit1 := TNewEdit.Create(WizardForm);
with NewEdit1 do begin
Name := 'NewEdit1';
Parent := WizardForm.SelectDirPage;
Top := WizardForm.DirEdit.Top + ScaleY(30) + ScaleY(44);
Width := WizardForm.DirEdit.Width
Height := ScaleY(20);
Text := 'D:\Games\Steam\steamapps\steamprofile';
//Color:=clColor;
end;
NewEdit1.TabOrder := 2;
end;
TestSystemButton := TNewButton.Create(WizardForm);
with TestSystemButton do begin
Parent := WizardForm.SelectDirPage;
Caption := 'Обзор...';
Left:= WizardForm.GroupBrowseButton.left
Top:=WizardForm.DirEdit.Top + ScaleY(30) + ScaleY(44);
Width:=WizardForm.GroupBrowseButton.Width
Height:=WizardForm.GroupBrowseButton.Height
//OnClick:=@TestSystemButtonOnClick
end;
end;
задача: надо сделать вторую кнопку рабочей, чтобы можно было выбирать папку и чтобы определенные компоненты туда ставились
буду рад любой помощи :)
El Sanchez
18-08-2011, 18:19
Функция запускается при ssPostInstall, т.е. после копирования всех остальных файлов... Так вот - как сделать так, чтобы в случае ошибки, делать откат изменений, такой же, как и при нажатии "Отмена" на более ранних этапах? »
avmaksimov, какой смысл сначала копировать файлы, а потом проверять их на "что-то тут не так"? Подобного рода проверки надо делать до установки или во время установки. Кстати, что проверяет ваша функция?
Gnom_aka_Lexander
18-08-2011, 18:46
http://inno.at.ua/TMP/12.7z
сделайте readymemo прозрачним, без рамочки »
Легко (http://rghost.ru/18422871). Прозрачный и без рамочки - как просил. Если хочеш - по остальным вопросам помогу. Но в таком-же стиле - чего просиш, то и дам.
VASYAKRN
18-08-2011, 22:32
http://inno.at.ua/TMP/18.08.bmp
gnom
сделай такое readymemo и пажалста помоги с остальним http://inno.at.ua/TMP/12.7z
Добавлено:
http://inno.at.ua/TMP/Fenixx_Dead_Spase_2_ISdone0.6.7z
перемистите isdone c sspostinstall na ssinstall
Добавлено:
http://inno.at.ua/TMP/undercover_bratherhood_lite.7z
вставте workspace.png i statuspanel.png на все станице и 1.png на все странице кроме первой и последней через ботву. Файли в архиве
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.