Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Старожил


Сообщения: 222
Благодарности: 19

Профиль | Отправить PM | Цитировать


С первой проблемой разобрался путём замены дистрибутива .Net с версии 4.0 на 3.5, которая, в отличие от 4.0, сама проверяет наличие установленной в системе версии .Net Framework и не устанавливает повторно то, что уже есть. Serega, приведённый код на Seven работает некорректно, в указанной ветке реестра на чистой системе есть только v2.0, хотя в системе установлена v3.5.

По второму вопросу полноценный прогрессбар сделать не получится, поэтому придётся довольствоваться фейковым, как при установке IE. Где найти код для него и как "прикрутить" его к секции Run? У меня сейчас уже задействован код для отображения процентов при распаковке всех файлов моего дистрибутива, поэтому нужно соединить обе части кода, первую привожу:


Код: Выделить весь код
 
var 
  ProgressLabel, SizeLabel: TLabel; 
   
procedure Progress(); 
var 
  size: integer; 
   
begin 
  with WizardForm.ProgressGauge do 
    ProgressLabel.Caption:= IntToStr((Position-Min)/((Max - Min)/100)) + '%'; 
 
  FileSize(ExpandConstant(CurrentFileName), size); 
  SizeLabel.Caption:= IntToStr(size) + ' bytes'; 
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.AutoSize := True; 
      ProgressLabel.Parent := WizardForm.InstallingPage; 
    end; 
     
  SizeLabel := TLabel.Create(WizardForm); 
  with WizardForm.ProgressGauge do 
    begin 
      SizeLabel.Top := Top + Height + ScaleY(8); 
      SizeLabel.Left:= Left; 
      SizeLabel.AutoSize := True; 
      SizeLabel.Parent := WizardForm.InstallingPage; 
    end; 
end;

Отправлено: 04:52, 26-12-2010 | #266