Старожил
Сообщения: 440
Благодарности: 251
|
Профиль
|
Сайт
|
Отправить PM
| Цитировать
LinkOFF, может быть места? Если да, то как то так:
Скока надо места
Код: 
#define NeedSize "400427"
#define TotalNeedSize "500427"
[Setup]
AppName=NeedSize
AppVerName=TotalNeedSize
DefaultDirName={pf}\NeedSize
DefaultGroupName=NeedSize
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[_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, TotalNeedSize:Integer; TotalNeedSpaceLabel,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);
TotalNeedSpaceLabel.Caption := 'Для распаковки требуется: '+ MbOrTb(TotalNeedSize);
FreeSpaceLabel.Caption := 'Доступно места на диске: '+ MbOrTb(FreeMB);
WizardForm.NextButton.Enabled:= (FreeMB>TotalNeedSize);
WizardForm.NextButton.Enabled:= (FreeMB>NeedSize);
if (FreeMB<TotalNeedSize) then
FreeSpaceLabel.Font.Color:=clRed else
FreeSpaceLabel.Font.Color:=WizardForm.Font.Color;
if (FreeMB<NeedSize) then
FreeSpaceLabel.Font.Color:=clRed else
FreeSpaceLabel.Font.Color:=WizardForm.Font.Color;
end;
procedure InitializeWizard();
begin
NeedSize := {#NeedSize};
TotalNeedSize := {#TotalNeedSize};
WizardForm.DiskSpaceLabel.Hide;
TotalNeedSpaceLabel := TLabel.Create(WizardForm);
TotalNeedSpaceLabel.Parent := WizardForm.SelectDirPage;
TotalNeedSpaceLabel.SetBounds(ScaleX(5), ScaleY(200), ScaleX(209), ScaleY(13));
FreeSpaceLabel := TLabel.Create(WizardForm);
FreeSpaceLabel.Parent := WizardForm.SelectDirPage;
FreeSpaceLabel.SetBounds(ScaleX(5), ScaleY(180), ScaleX(209), ScaleY(13));
NeedSpaceLabel := TLabel.Create(WizardForm);
NeedSpaceLabel.Parent := WizardForm.SelectDirPage;
NeedSpaceLabel.SetBounds(ScaleX(5), ScaleY(220), ScaleX(209), ScaleY(13));
WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption;
end;
//******************************************* [ конец Место для установки ] ***************************************************//
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpSelectDir then GetFreeSpaceCaption(nil);
end;
|
-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".
Отправлено: 21:11, 01-08-2011
| #2561
|