iTASmania_Inc
Цитата:
А если серьезно, то на мой взгляд, если необходимо отображать проценты установки, нет необходимости высчитывать соотношения размеров файлов, так как данные процесса установки уже присутствуют (в WizardForm.ProgressGauge). Их надо только перевести в проценты. В итоге это может выглядеть примерно так:
Код:
[Setup]
AppName=AppName
AppVerName=AppVerName
DefaultDirName={pf}\My Program
[Files]
Source: setup.log; DestDir: {app}; AfterInstall: ExtLog()
Source: Files\*; DestDir: {app}; AfterInstall: ExtLog()
[Code]
var
ProgressLabel: TLabel;
procedure ExtLog();
begin
SaveStringToFile(ExpandConstant('{app}\setup.log'), #13#10 + GetDateTimeString('dd/mm/yyyy hh:nn:ss', '-', ':') +
' - ' + ExpandConstant(CurrentFileName), True);
with WizardForm.ProgressGauge do
ProgressLabel.Caption:= IntToStr((Position-Min)/((Max - Min)/100)) + '%';
end;
procedure InitializeWizard();
begin
ProgressLabel := TLabel.Create(WizardForm);
with WizardForm.ProgressGauge do
begin
ProgressLabel.Top := Top + Height + ScaleY(8);
ProgressLabel.Left:= Left + Width/2 - ScaleX(8);
ProgressLabel.Caption := 'TLabel';
ProgressLabel.AutoSize := True;
ProgressLabel.Parent := WizardForm.InstallingPage;
end;
end;
Цитата:
как суммировать размеры файлов по ходу инсталляции и выводить под прогресс-баром их процентное отношение к размеру ВСЕХ файлов инсталлятора? Ну, то есть показывать проценты установки?-- порадовала первая часть - только интеллектуально развитые люди могут так усложнить вопрос "как показывать проценты установки"
А если серьезно, то на мой взгляд, если необходимо отображать проценты установки, нет необходимости высчитывать соотношения размеров файлов, так как данные процесса установки уже присутствуют (в WizardForm.ProgressGauge). Их надо только перевести в проценты. В итоге это может выглядеть примерно так:
Код:
[Setup]
AppName=AppName
AppVerName=AppVerName
DefaultDirName={pf}\My Program
[Files]
Source: setup.log; DestDir: {app}; AfterInstall: ExtLog()
Source: Files\*; DestDir: {app}; AfterInstall: ExtLog()
[Code]
var
ProgressLabel: TLabel;
procedure ExtLog();
begin
SaveStringToFile(ExpandConstant('{app}\setup.log'), #13#10 + GetDateTimeString('dd/mm/yyyy hh:nn:ss', '-', ':') +
' - ' + ExpandConstant(CurrentFileName), True);
with WizardForm.ProgressGauge do
ProgressLabel.Caption:= IntToStr((Position-Min)/((Max - Min)/100)) + '%';
end;
procedure InitializeWizard();
begin
ProgressLabel := TLabel.Create(WizardForm);
with WizardForm.ProgressGauge do
begin
ProgressLabel.Top := Top + Height + ScaleY(8);
ProgressLabel.Left:= Left + Width/2 - ScaleX(8);
ProgressLabel.Caption := 'TLabel';
ProgressLabel.AutoSize := True;
ProgressLabel.Parent := WizardForm.InstallingPage;
end;
end;