Автор: innonewbie
Дата сообщения: 10.10.2014 17:52
artemabu, можно ещё так написать:
[Messages]
DiskSpaceMBLabel=Требуется как минимум 8.36 Гб свободного дискового пространства.
Или вот [more=пример]#define NeedSize "400427"
[Setup]
AppName=NeedSize
AppVerName=TotalNeedSize
DefaultDirName={pf}\NeedSize
DefaultGroupName=NeedSize
[Code]
//******************************************* [ начало Место для установки ] ***************************************************//
Function NumToStr(Float: Extended): String;
Begin
Result:= Format('%.2n', [Float]); StringChange(Result, ',', '.');
while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = '.')) and (Pos('.', Result) > 0) do
SetLength(Result, Length(Result)-1);
End;
var
FreeMB, TotalMB: Cardinal;
NeedSize:Integer;
NeedSpaceLabel,FreeSpaceLabel: TLabel;
Function MbOrTb(Byte: Extended): String;
begin
if Byte < 1024 then Result:= NumToStr(Byte) + ' Мб' else
if Byte/1024 < 1024 then Result:= NumToStr(round(Byte/1024*100)/100) + ' Гб' else
Result:= NumToStr(round((Byte/(1024*1024))*100)/100) + ' Тб';
end;
procedure GetFreeSpaceCaption(Sender: TObject);
var
Path: String;
begin
Path := ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
NeedSpaceLabel.Caption := 'Необходимо места на диске: '+ MbOrTb(NeedSize);
FreeSpaceLabel.Caption := 'Доступно места на диске: '+ MbOrTb(FreeMB);
WizardForm.NextButton.Enabled:= (FreeMB>NeedSize);
if (FreeMB<NeedSize) then
FreeSpaceLabel.Font.Color:=clRed else
FreeSpaceLabel.Font.Color:=WizardForm.Font.Color;
end;
procedure InitializeWizard();
begin
NeedSize := {#NeedSize};
WizardForm.DiskSpaceLabel.Hide;
FreeSpaceLabel := TLabel.Create(WizardForm);
FreeSpaceLabel.Parent := WizardForm.SelectDirPage;
FreeSpaceLabel.SetBounds(ScaleX(5), ScaleY(220), ScaleX(209), ScaleY(13));
NeedSpaceLabel := TLabel.Create(WizardForm);
NeedSpaceLabel.Parent := WizardForm.SelectDirPage;
NeedSpaceLabel.SetBounds(ScaleX(5), ScaleY(200), ScaleX(209), ScaleY(13));
WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption;
end;
//******************************************* [ конец Место для установки ] ***************************************************//
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpSelectDir then GetFreeSpaceCaption(nil);
end;
[/more] проверки необходимого и места и общего размера HDD.