mainunit.pas

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

PAS
81
字号
unit MainUnit;

interface

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

type
  TMainForm = class(TForm)
    Button1: TButton;
    Label1: TLabel;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    procedure FormatDriver(i: String);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;
const
  FMT_DRV_A= 0;  //格式化A盘(即软盘);
  FMT_ID_DEFAULT= $FFFF;
  FMT_OPT_QUICKFORMAT= 0;  //快速格式化;
  FMT_OPT_FULLFORMAT= 1;  //完全格式化;
  FMT_OPT_SYSONLY= 2;  //仅复制系统文件;
  FMT_ERROR= -1;  //格式化出错;
  FMT_CANCEL= -2;  //格式化取消;
  FMT_NOFINISH= -3;  //格式化没有完成;

function SHFormatDrive(hWnd: HWND; Drive: Word; fmtID: Word;
  Options: Word): LongInt stdcall; external 'Shell32.dll' name 'SHFormatDrive';
implementation

{$R *.DFM}
procedure TMainForm.FormatDriver(i: String);
var
  FmtRes: LongInt;
begin
  try
    if i= '0' then
      FmtRes:= SHFormatDrive(Handle, FMT_DRV_A, FMT_ID_DEFAULT, FMT_OPT_QUICKFORMAT);  //快速格式化
    if i= '1' then
      FmtRes:= SHFormatDrive(Handle, FMT_DRV_A, FMT_ID_DEFAULT, FMT_OPT_FULLFORMAT);  //完全格式化
    if i= '2' then
      FmtRes:= SHFormatDrive(Handle, FMT_DRV_A, FMT_ID_DEFAULT, FMT_OPT_SYSONLY);  //仅复制系统文件

    case FmtRes of
      FMT_ERROR: ShowMessage('格式化出错!');
      FMT_CANCEL: ShowMessage('格式化取消!');
      FMT_NOFINISH: ShowMessage('格式化没有完成!');
    else
      ShowMessage('格式化成功!');
    end;
  except
  end;
end;

procedure TMainForm.Button1Click(Sender: TObject);
begin
  FormatDriver('0');
end;

procedure TMainForm.Button2Click(Sender: TObject);
begin
  FormatDriver('1');
end;

procedure TMainForm.Button3Click(Sender: TObject);
begin
  FormatDriver('2');
end;

end.

⌨️ 快捷键说明

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