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 + -
显示快捷键?