innonewbie
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору #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; |