Показать полную графическую версию : [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
а Transparent к каким элементам можно применять, только к лейблам? »
К сожалению, да.
Вот например TMemo можно сделать прозрачной? »
нет, но ухитряются делать TLabel под вид TMemo.
Serega, ухитряются делать TLabel под вид TMemo »
Знаю, из четырех TLabel ...
1. Подскажите, что прописать в коде, чтобы в конце установки проверялось условие на наличие второго сетапа (лежит на DVD рядом с основным setup.exe, который стартуется первым), и если таковой имеется, запустить его, не показывая финального окна ("Завершение мастера установки"), а если второго сетапа на диске нет, просто выполнить установку без сообщений об отсутствии проверяемого файла?
2. Отключил окно приветствия. Как теперь отключить кнопку "Назад" в первом диалоге (если нельзя только в 1-ом, вообще отключить эту кнопку)?
Спасибо.
baikalchanen
08-12-2009, 14:49
Как наложить картинку на весь инсталятор и ещё чтобы все страницы были одинаковыми на фон а не как у меня на скрине?
baikalchanen
08-12-2009, 14:50
Это я скрины для спавнения вложил если что.
Приветстую, такой вопросик, как добавить в ini файл вот это:
[Settings]
Name=Имя
И Имя вписывалось в ini, которое я ввел на странице wpInfoBefore.
Все нашел уже :)
Теперь только вопросик как сделать чтобы на одной странице было 2 строки, одна ввод имени для одиночной игры, вторая ввод имени для сетевой игры. А то ейчас у меня 2 страницы, а хотелось бы на одной.
serg aka lain
08-12-2009, 23:53
1. Подскажите, что прописать в коде, чтобы в конце установки проверялось условие на наличие второго сетапа (лежит на DVD рядом с основным setup.exe, который стартуется первым), и если таковой имеется, запустить его, не показывая финального окна ("Завершение мастера установки"), а если второго сетапа на диске нет, просто выполнить установку без сообщений об отсутствии проверяемого файла?
2. Отключил окно приветствия. Как теперь отключить кнопку "Назад" в первом диалоге (если нельзя только в 1-ом, вообще отключить эту кнопку)?
Спасибо. »
пример
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=userdocs:My Program.
[Code]
procedure CurPageChanged(CurPageID: Integer);
var
ErrorCode: Integer;
begin
if CurPageID = wpWelcome then
WizardForm.NextButton.OnClick(WizardForm.NextButton);
if CurPageID = wpSelectDir then
WizardForm.BackButton.Hide;
if CurPageID = wpFinished then
if FileExists(ExpandConstant('{src}\setup_2.exe')) then
begin
Exec(ExpandConstant('{src}\setup_2.exe'), '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
WizardForm.NextButton.OnClick(WizardForm.NextButton);
end;
end;
serg aka lain
09-12-2009, 00:11
Теперь только вопросик как сделать чтобы на одной странице было 2 строки, одна ввод имени для одиночной игры, вторая ввод имени для сетевой игры. А то ейчас у меня 2 страницы, а хотелось бы на одной. »
можно так
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=userdocs:My Program.
[Code]
var
Page: TInputQueryWizardPage;
procedure InitializeWizard();
begin
Page := CreateInputQueryPage(wpSelectDir, 'Ввод имени', '',
'Пожалуйста, введите имя для сетевой и одиночной игры.');
Page.Add('ввод имени для одиночной игры:', False);
Page.Add('ввод имени для сетевой игры:', False);
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
if CurPageID = Page.ID then
SaveStringToFile(ExpandConstant('{userdesktop}\information.txt'),
'ввод имени для одиночной игры:' + ' ' + Page.Values[0] + #13#10
'ввод имени для сетевой игры:' + ' ' + Page.Values[1] + #13#10, False);
end;
serg aka lain
То что надо, огромное спасибо ;)
Dark Engel
09-12-2009, 10:13
Добрый день. Второй день бьюсь над проблемой.
1. Необходимо перед установкой проверять наличие ключа в реестре (не значения) в случае его отсутствия продолжать установку в случае существования переходить к пункту 2.
2. Необходимо перед установкой проверять значение ключа в реестре: в случае совпадения прерывать установку, если значение меньше предлагать обновление и в случае если больше говорить что установленная версия новее.
Подскажите кто может. Заранее спасибо. :angel:
P.S. Это первый мой инсталятор на inno setup :not-me:
Спасибо, serg aka lain!
Пример - то, что надо, только при включенном DisableDirPage=yes кнопка НАЗАД все равно есть.
Что сделать, чтобы Ваш приведенный код выполнялся правильно при задействованном DisableDirPage=yes ?
Всем доброго времени суток, создал Setup , все сделал как надо, но возникла проблема!
Архивы распаковываються, но просто в корень папки, а не по подпапкам. Как исправить?
Заранее багодарен за ответ!
Dark Engel
09-12-2009, 14:15
Молодой, Указывай в скрипте не
D:\test\po\proga\*
а
D:\test\po\proga\*; DestDir: {app}
D:\test\po\proga\papka\*; DestDir: {app}\papka;
D:\test\po\proga\papka1\*; DestDir: {app}\papka1;
D:\test\po\proga\papka2\podpapka1\*; DestDir: {app}\papka2\podpapka1;
D:\test\po\proga\papka2\podpapka2\*; DestDir: {app}\papka2\podpapka2;
D:\test\po\proga\papka3\*; DestDir: {app}\papka3;
baikalchanen
09-12-2009, 15:54
Собрал скрипт с музыкой и с темой Vista.cjstyles,в итоге получается только с музыкой без темы либо только с темой без музыкой!
Помогите собрать скрипт с музыкой и с темой вместе.
Прикрепил два скрипта один с музыкой,другой с темой.
Подскажите скрипт для расчета свободного места на жестком "Требуется свободного места..."
Заранее благодарен
Inno Setup Compiler [ANSI] Beta (build 091209) English (http://restools.hanzify.org/inno/InnoCompiler_ANSI_BETA_091209_English(7zip).zip) by Restools (http://restools.hanzify.org/)
A1EXXX, Спасибо, но это же не сам скрипт или я что то путаю?
Молодой, это расширенная версия компилятора... По твоему вопросу, это, думаю, подойдёт:
[Code]
var
NeedSize:Integer; FreeMB, TotalMB: Cardinal; NeedSpaceLabel,FreeSpaceLabel: TLabel;
procedure GetFreeSpaceCaption(Sender: TObject);
var
Path: String;
begin
Path := ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if FreeMB > 1024 then
FreeSpaceLabel.Caption := 'Доступно места на диске: '+ FloatToStr(round(FreeMB/1024*100)/100) + ' GB' else
FreeSpaceLabel.Caption := 'Доступно места на диске: '+ IntToStr(FreeMB)+ ' MB';
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled := False else
WizardForm.NextButton.Enabled := True; end;
procedure GetNeedSpaceCaption;
begin
if NeedSize > 1024 then
NeedSpaceLabel.Caption := 'Требуется места на диске: '+ FloatToStr(round(NeedSize/1024*100)/100) + ' GB' else
NeedSpaceLabel.Caption := 'Требуется места на диске: '+ IntToStr(NeedSize)+ ' MB';
end;
procedure InitializeWizard();
begin
NeedSize := 630000; // здесь указать сколько требуется для установки (в Mb)
WizardForm.DiskSpaceLabel.Hide;
NeedSpaceLabel := TLabel.Create(WizardForm);
with NeedSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(202);
Width := ScaleX(209);
Height := ScaleY(13);
end;
FreeSpaceLabel := TLabel.Create(WizardForm);
with FreeSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(220);
Width := ScaleX(209);
Height := ScaleY(13);
end;
WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption;
WizardForm.DirEdit.Text := WizardForm.DirEdit.Text + #0;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpSelectDir then begin
GetNeedSpaceCaption;
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled:=False
end;
end;
A1EXXX, Огромное спасибо за скрипт, прописал, все работает! :oszone: :ok:
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.