Листинг 4.9. Загрузка информации о выбранном диске
procedure TForm1.cboDrivesSelect(Sender: TObject);
var info: DriveInfo;
root: String;
fullSize, freeSize: Int64;
begin
root := cboDrives.Items[cboDrives.ItemIndex];
//Загружаем информацию о выбранном диске
GetDriveInformation(root, info);
//Общая информация о диске и файловой системе
txtLabel.Text := info.DriveLabel;
txtDriveType.Text := GetDriveTypeName(root);
txtFSName.Text := info.FileSystemName;
txtSN.Text := IntToHex(Int64(info.SerialNumber), 8);
txtMaxFileName.Text := IntToStr(Integer(info.MaxFileNameLen));
//Флажки некоторых свойств файловой системы
chkCaseSensitive.Checked := info.FileSystemOptions.CaseSensitive;
chkCompression.Checked := info.FileSystemOptions.SupportCompression;
chkCompressed.Checked := info.FileSystemOptions.IsCompressed;
//Размер диска
fullSize := GetDriveSize(root);
if fullSize <> –1 then
freeSize := GetDriveFreeSpace(root)
else
begin //Ошибка при обращении к диску
fullSize := 0;
freeSize := 0;
end;
//..формирование диаграммы
driveSize.Series[0].Clear;
driveSize.Series[0].Add( freeSize, \'Свободно\');
driveSize.Series[0].Add( fullSize – freeSize, \'Занято\')
end;
При нажатии кнопки Изменить производится попытка присвоить выбранному в списке диску метку, введенную в соответствующее текстовое поле (txtLabel) (листинг 4.10).