mainunit.pas

来自「Delphi7编程80例(完全版)」· PAS 代码 · 共 94 行

PAS
94
字号
unit MainUnit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TMain = class(TForm)
    StaticText1: TStaticText;
    ComboBox1: TComboBox;
    StaticText3: TStaticText;
    Edit1: TEdit;
    StaticText4: TStaticText;
    Edit2: TEdit;
    Button1: TButton;
    ListBox1: TListBox;
    procedure FormShow(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    procedure GetDrivers;
   { Private declarations }
  public
    { Public declarations }
  end;

var
  Main: TMain;
  const dod= 1024*1024;
implementation
{$R *.DFM}

function DiskFree(Drive: String): Int64;
var
 FreeBytesAvailableToCaller: Int64;
 RootPtr: pChar;
 TotalNumberOfBytes: Int64;
begin
  RootPtr := Pchar(Drive);
  if GetDiskFreeSpaceEx(RootPtr,
                        FreeBytesAvailableToCaller,
                        TotalNumberOfBytes,
                        nil)
  then RESULT := FreeBytesAvailableToCaller
  else RESULT := -1
end;

function DiskSize(Drive: String): Int64;
var
 FreeBytesAvailableToCaller: Int64;
 RootPtr: pChar;
 TotalNumberOfBytes: Int64;
begin
  RootPtr := Pchar(Drive);
  if   GetDiskFreeSpaceEx(RootPtr,
                          FreeBytesAvailableToCaller,
                          TotalNumberOfBytes,
                          nil)
    then RESULT := TotalNumberOfBytes
    else RESULT := -1
end;

procedure TMain.GetDrivers;
var i, sResult: Integer;
begin
  for i:= 0 to ListBox1.Items.Count-1 do
    begin
      sResult := GetDriveType(Pchar(ListBox1.Items[i] + ':\'));
      if sResult= DRIVE_Fixed then
        Combobox1.Items.Add(Listbox1.Items[i]+ ':\');
        Combobox1.Text:= Combobox1.Items[0];
    end;
end;

procedure TMain.FormShow(Sender: TObject);
begin
  GetDrivers;
end;

procedure TMain.Button1Click(Sender: TObject);
var sType: String;
begin
  if Combobox1.Text<> '' then
    begin
     sType:= Combobox1.Text;
     Edit1.Text:= InttoStr(DiskSize(sType)div dod);
     Edit2.Text:= InttoStr(DiskFree(sType)div dod);
    end
  else Showmessage('请选择硬盘驱动器');
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?