neorom
Конкретно в данном примере:
читать дальше »
Код:

[Setup]
AppName=AppName
AppVerName=AppVerName
DefaultDirName={pf}\My Program
[Files]
Source: files\*; DestDir: {app}; AfterInstall: ExtLog(); Flags: recursesubdirs
[code]
var
ProgressLabel: TLabel;
procedure ExtLog();
begin
with WizardForm.ProgressGauge do begin
ProgressLabel.Caption:=IntToStr((Position-Min)/((Max - Min)/100)) + '%'
if (Position-Min)/((Max - Min)/100) > 50 then ProgressLabel.Font.Color:= clWhite
end
end;
procedure InitializeWizard;
begin
ProgressLabel:=TLabel.Create(WizardForm)
ProgressLabel.Top:= 4
ProgressLabel.Left:= 200
ProgressLabel.Caption:= '0%'
ProgressLabel.AutoSize:= True
ProgressLabel.Font.Color:= clBlue
ProgressLabel.Font.Style:= [fsBold]
ProgressLabel.Transparent:= True
ProgressLabel.Parent:= WizardForm.ProgressGauge
end;
Более - менее плавное отображение процентов будет возможном только, если инсталятор содержит файлы небольшого размера, так как здесь проценты обновляются после того, как файл уже скопирован на диск(о чем ясно говорит процедура AfterInstall, то есть После установки). Иными словами, если у вас в инсталяторе, к примеру, пара файлов весом по несколько гигабайт, то проценты будут делать большие скачки. Лучше использовать другие способы отображения процентов, на форуме много различных примеров, пользуйтесь поиском. Например вот
Пост .Так же, пару страниц назад уважаемый
Johny777 выкладывал прекрасный пример отображения процентов установки и удаления.
Насчет изменения координат контрола, за это отвечают параметры Left(положение по горизонтали), Top(положение по вертикали). За размеры контрола отвечают Width(ширина), Height(высота) Можете так же создать свой лейбл и делать с ним, что угодно.
Координаты указываются так:
Код:

Left := ScaleX(24); //Положение по горизонтали от левого края клиента
Top := ScaleY(64); //Положение по вертикали от верхнего края клиента
Width := ScaleX(450); //Ширина
Height := ScaleY(235); //Высота
А лучше в одну строчку:
Код:

SetBounds(ScaleX(24), ScaleY(64), ScaleX(450), ScaleY(235)); //procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer);