Inno Setup (создание инсталяционных пакетов). Часть 3

Статус
В этой теме нельзя размещать новые ответы.

Mailchik

Старожил
Проверенный
RameR, в справке всё это написано:
Comp1, Comp2, Comp3 – данные для dll о выбранных компонентах, закодированные в двоичную систему. В тестовом прогоне не используются, т.к. там в любом случае распаковываются все компоненты. При автоматической расстановке % после тестового прогона совместно с recods.inf служит для определения пропускаемых операций и сколько процентов будет распределено на все остальные операции, которые точно будут выполнены в процессе установки.
TimeType – задает тип для формирования библиотекой строк оставшегося, прошедшего и общего времени. Данная опция сделана для того, чтобы любой на свой вкус мог выбрать более понравившийся тип отображаемого времени. Эффективней и проще всего задавать его в шестнадцатиричной системе счисления, для чего перед числом необходимо ставить знак $, после которого будут идти 4 числа в интервале 0..F. Каждое из них будет задавать тип строк оставшегося времени на панели задач, общего, прошедшего, оставшегося времени в указанном порядке. Например код $0057 задаст для строки, отображаемой в панели задач, тип 0, для строки общего времени тип 0, для прошедшего — тип 5, для оставшегося — 7. Теперь более подробно о каждом типе и примеры формируемых строк:
 

RameR

Новичок
Выходит что Comp1, Comp2, Comp3 необходимы не только для категории [components] так я ее убрал они мне не нужны (выбор языков и субтитров)!То есть они нужны для всей распаковки, даже из внешнего архива!Подправтье если что не так!?! Без компонентов скрипт работает, а без Comp1..2..3...не хочет?вот это я понять не могу...если это для выбранных компонентов...их у меня нет [components] без них работает, а без данных для них не хочет!?!
 

Mailchik

Старожил
Проверенный
RameR, нет, они нужны именно для компонентов. значит вы в скрипте что то не доглядели, упустили.
 

RameR

Новичок
Mailchik,
Если удаляю Comps1,Comps2,Comps3, здесь

Procedure CurStepChanged(CurStep: TSetupStep);
var Comps1,Comps2,Comps3, TmpValue:cardinal;
FindHandle1,ColFiles1,CurIndex1,tmp:integer;
ExecError:boolean;
InFilePath,OutFilePath,OutFileName:pAnsiChar;
begin
if CurStep = ssInstall then begin
WizardForm.ProgressGauge.Hide;
WizardForm.CancelButton.Hide;
CreateControls;
WizardForm.StatusLabel.Caption:=ExpandConstant('{cm:Extracted}');
ISDoneCancel:=0;

То начинает скрипт ругаться в строке с $F777. типа не может индефицировать Comps1,Comps2,Comps3

ISDoneError:=true;
if ISDoneInit(ExpandConstant('{src}\records.inf'), $F777, Comps1,Comps2,Comps3, MainForm.Handle, {#NeedMem}, @ProgressCallback) then begin
repeat
if not SrepInit('',512,0) then break;
if not FileSearchInit(true) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\*.bin'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;

Если удаляю Comps1,Comps2,Comps3, то пишет invalid number of parametrs...
Не могу понять где и что править...Может не здесь искать и править надо? Подскажите если знаете
 

RameR

Новичок
Понял что размера окна, расположение панелей и кнопок зависит не от скина, как сделать чтобы кнока обзора и панель ввода для нее для всех страниц были внизу рядом с основными кнопками, то есть как у Fenixx'a, и размера всего окна соответственно сал больше!
 

Mailchik

Старожил
Проверенный
RameR, Пример
 

RameR

Новичок
Мне надо объединить две процедуры

Со скрипта:

Procedure CurPageChanged(CurPageID: Integer);
Begin
if (CurPageID = wpFinished) and ISDoneError then
begin
LabelTime3.Hide;
WizardForm.Caption:= ExpandConstant('{cm:Error}');
WizardForm.FinishedLabel.Font.Color:= clWhite;
WizardForm.FinishedLabel.Caption:= SetupMessage(msgSetupAborted) ;
end;
end;

И ваша, назначение которой я так понял для отображение только на странице директории

procedure CurPageChanged(CurPageID : integer);
begin
WizardForm.DirEdit.Hide;
WizardForm.DirBrowseButton.Hide;
case CurPageID of
wpSelectDir : begin
WizardForm.DirEdit.Show;
WizardForm.DirBrowseButton.Show;
end;
end;
end;

Без этой процедуры эти две созданные формы DirEdit и DirBrowseButton отображаются на всех страницах

Как создать также для страницы группы, пробывал вместо Dir вписать Group, не работает?а нет сработало)help me объединить процедры!
 
Последнее редактирование:

Mailchik

Старожил
Проверенный
RameR, скрипт
 

RameR

Новичок
Width=ширина;Height=высота...
С растановкой разобрался, хочу менять высоту и ширину

with DirEdit do begin
Parent := WizardForm;
SetBounds(ScaleX(10), NextButton.Top + ScaleY(1), ScaleX(160), Height);

Пробывал:
SetBounds(ScaleX(10), NextButton.Top + ScaleY(1), ScaleX(160), Width(256), Height);
SetBounds(ScaleX(10), NextButton.Top + ScaleY(1), ScaleX(160), Width:=256, Height);
Выходит что Invalid numbers of parameters

И если не трудно скриптовские названия компонентов страниц, типа DirEdit и DirBrowseButton: для кнопок назад, далее, отмена, установить (хотя это может что и далее), различных текстов (насчитал 5-6) и две полоски...
 

Mailchik

Старожил
Проверенный
так нельзя писать в SetBounds. Надо ScaleX(значение). Отдельно можно width := значение.
 
Последнее редактирование:

LexBell

Борода
Супер модератор
Выходит что Invalid numbers of parameters
SetBounds(ScaleX(10), NextButton.Top + ScaleY(1), ScaleX(160), Width(256), Height);
Вы где такое увидели?
SetBounds(ScaleX(10), NextButton.Top + ScaleY(1), ScaleX(160), ScaleY(256)); вот так нужно.
Поправил. Не заметил, что тут еще и 5 параметров было.
 
Последнее редактирование:

YURSHAT

Тех. админ
Администратор
и где можно глянуть названия компонентов страниц
Поставить расширенную версию от китайсев. Там есть редактор форм, в котором можно просмотреть названия всех элементов формы инсталла.
 

Adil

Старожил
Всем добрый день :hi:
Может не по теме, но у меня такой вопрос:

В реестре игр от EA Games есть строчка:

Код:
Root: HKLM; SubKey: SOFTWARE\Electronic Arts\The Saboteur; ValueType: string; ValueName: Folder; ValueData: C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Electronic Arts\The Saboteur™\; Flags: uninsdeletevalue uninsdeletekeyifempty
Сюда ставить надо {commonstartmenu} или {group}?

Заранее спасибо:)
 

RameR

Новичок
1) Можно ли TaskPage и ProgramGroupPage объединить? То есть
чтобы все это отображалось на странице выбора группы

Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: group; Description: В меню пуск; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
:help:
PS: С SetBounds затупил, извиняюсь)

2) Procedure CancelButtonOnClick(Sender: TObject);
begin
SuspendProc;
if MsgBox(SetupMessage(msgExitSetupMessage), mbf, MB_YESNO) = IDYES then ISDoneCancel:=1;
ResumeProc;
end;

Параметр Confirm указывает, следует ли отобразить сообщение "Прервать установку?";
Как сделать, чтобы оно не отображалось!? Игнорировалось и запускало процесс отмены!?

Заранее, Thanks!!
 
Последнее редактирование:

RameR

Новичок
Какой шрифт использует Fenixx? Или это полностью BitmapImage! Делаю закос под Fenixx'a с нуля с картинками в "стиле" R.G. Virtus! Заранее спасибо!
 

RameR

Новичок
У Fenixx'а через фотошоп, а у R.G. Virtus: чей именно инсталлятор?
WARHEAD3000, эффект диагональных полупрозрачных линий на фоном рисунке!Тоже через фотошоп! Какие ты шрифты используешь или посоветуешь? Я остановился на Tahoma, может спец. шрифт сделать...
 

Adil

Старожил
WARHEAD3000, эффект диагональных полупрозрачных линий на фоном рисунке!Тоже через фотошоп! Какие ты шрифты используешь или посоветуешь? Я остановился на Tahoma, может спец. шрифт сделать...
Я использую Segoe UI, хотя можешь поэкспериментировать в редакторе форм.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху