Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

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

Ветеран


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

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


Johny777, спасибо. Как я понял, по этому самому принципу можно извлечь кол-во необходимого места и из WizardForm.DiskSpaceLabel. Если нет компонентов в инстале.

Так верно?
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

[Files]
Source: {win}\Fonts\*; DestDir: {app}; Flags: external; ExternalSize: 56459118550

[...Code]
function GetFloatFormText(const UndefText: String): String;
var
  i: Integer;
begin
  for i := 1 to Length(UndefText) do
  case UndefText[i] of
    '0','1','2','3','4','5','6','7','8','9': Result := Result + UndefText[i];
    ',': Result := Result + '.';
  end;
end;

function GetFreeDriveSpace(const UndefInstallPath: String): Cardinal;
var
  TotalMB: Cardinal;
begin
  GetSpaceOnDisk(ExtractFileDrive(UndefInstallPath), True, Result, TotalMB);
end;

procedure ComapreSpace(Sender: TObject);
var
  UndefNeedSize, UndefFreeSize: Extended;
begin
  case Sender of
    WizardForm.DirEdit:
    begin
      UndefNeedSize := StrToFloat(GetFloatFormText(WizardForm.DiskSpaceLabel.Caption));
      UndefFreeSize := Extended(GetFreeDriveSpace(WizardDirValue()));
      WizardForm.NextButton.Enabled := UndefFreeSize > UndefNeedSize;
      if WizardForm.NextButton.Enabled then
      WizardForm.DiskSpaceLabel.Font.Color := clBlack else WizardForm.DiskSpaceLabel.Font.Color := clRed;
    end;
  end;
end;

procedure InitializeWizard();
begin
  WizardForm.DirEdit.OnChange := @ComapreSpace;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID = wpSelectDir then ComapreSpace(WizardForm.DirEdit);
end;


------------------------------------------------------------------------------------------------

habib2302,

читать дальше »
Код: Выделить весь код
[Setup]
AppName=My License
AppVerName=My License v 1.3
CreateAppDir=False
OutputDir=.
licenseFile=compiler:Examples\Readme.txt


[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl

[...Code]
var
  CheckLicense: TCheckBox;

procedure LicenseOnClick(Sender: TObject);
begin
  if (CheckLicense.Checked) = True then
  begin
    WizardForm.LicenseAcceptedRadio.Checked := True;
  end else
  begin
    WizardForm.LicenseNotAcceptedRadio.Checked := True;
  end;
end;

procedure InitializeWizard();
begin
  WizardForm.LicenseNotAcceptedRadio.Hide;
  WizardForm.LicenseAcceptedRadio.Hide;
  WizardForm.LicenseMemo.Height := ScaleY(175);

  CheckLicense:= TCheckBox.Create(WizardForm);
  CheckLicense.Left:= ScaleX(0);
  CheckLicense.Top:= ScaleY(216);
  CheckLicense.Caption:= WizardForm.LicenseAcceptedRadio.Caption;
  CheckLicense.Width:= ScaleX(417);
  CheckLicense.OnClick:= @LicenseOnClick;
  CheckLicense.Parent:= WizardForm.LicensePage;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:22, 30-03-2013 | #28