unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, FileUnit, StdCtrls, systemUnit, uses_end; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i: Integer; Drives: String; MessageOutput: String; Size, Free: Int64; begin Memo1.Lines.Clear; Memo1.Lines.Add('Drive Type DiskSize DiskFree'); Drives := GetDriveString; for i := 1 to Length(Drives) do begin MessageOutput := Drives[i] + ':\ '; MessageOutput := MessageOutput + IntToStr(DriveType(Char(Drives[i])))+' '; Memo1.Lines.Add(MessageOutput); MessageOutput := ' DiskSize '; MessageOutput := MessageOutput + IntToStr(GetDiskSize(Drives[i])) + 'Byte ='; MessageOutput := MessageOutput + ByteToStr(GetDiskSize(Drives[i]), bfByteToKilo, 0) + 'KB ='; MessageOutput := MessageOutput + ByteToStr(GetDiskSize(Drives[i]), bfByteToMega, 0) + 'MB ='; MessageOutput := MessageOutput + ByteToStr(GetDiskSize(Drives[i]), bfByteToGiga, 0) + 'GB'; Memo1.Lines.Add(MessageOutput); MessageOutput := ' DiskFree '; MessageOutput := MessageOutput + IntToStr(GetDiskFree(Drives[i])) + 'Byte ='; MessageOutput := MessageOutput + ByteToStr(GetDiskFree(Drives[i]), bfByteToKilo, 0) + 'KB ='; MessageOutput := MessageOutput + ByteToStr(GetDiskFree(Drives[i]), bfByteToMega, 0) + 'MB ='; MessageOutput := MessageOutput + ByteToStr(GetDiskFree(Drives[i]), bfByteToGiga, 0) + 'GB'; Memo1.Lines.Add(MessageOutput); GetDiskFreeSpaceEx(Drives[i], Size, Free); MessageOutput := ' DiskSize '; MessageOutput := MessageOutput + IntToStr(Size) + 'Byte ='; MessageOutput := MessageOutput + ByteToStr(Size, bfByteToKilo, 0) + 'KB ='; MessageOutput := MessageOutput + ByteToStr(Size, bfByteToMega, 0) + 'MB ='; MessageOutput := MessageOutput + ByteToStr(Size, bfByteToGiga, 0) + 'GB'; Memo1.Lines.Add(MessageOutput); MessageOutput := ' DiskSize '; MessageOutput := MessageOutput + IntToStr(Free) + 'Byte ='; MessageOutput := MessageOutput + ByteToStr(Free, bfByteToKilo, 0) + 'KB ='; MessageOutput := MessageOutput + ByteToStr(Free, bfByteToMega, 0) + 'MB ='; MessageOutput := MessageOutput + ByteToStr(Free, bfByteToGiga, 0) + 'GB'; Memo1.Lines.Add(MessageOutput); end; end; end.