Delphi学习手记——硬盘分区容量设置计算器(源代码)

硬盘分区容量计算原理详见http://blog.csdn.net/dfyy88/archive/2009/10/07/4640228.aspx

 

程序界面:

硬盘分区容量设置计算器

 

Delphi源码如下:

 

unit Fdisk;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Math, ShellAPI;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    GroupBox1: TGroupBox;
    Label2: TLabel;
    Label3: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Label3MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Label3MouseLeave(Sender: TObject);
    procedure Label3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  Gvol, MFvol, MNvol :real;
begin
  if (Edit1.Text='') or (strtofloat(Edit1.Text)<0.004) then
  begin
    Label2.Font.Color:= clRed;
    Label2.Caption:='请输入正确的分区容量';
  end
  else
  begin
    Label2.Font.Color:= clBlue;            //设置字体颜色为蓝色
    Gvol:=strtofloat(Edit1.Text);          //读取输入的分区容量
    MFvol:=(Gvol-1)*4+Gvol*1024;     //FAT32格式分区设置容量
    MNvol:=ceil(ceil(Gvol*1024/7.84423828125)*7.84423828125);    //NTFS格式分区设置容量。512Byte×255×63=8225280Byte=7.84423828125 MB
    Label2.Caption:='FAT32格式 '+floattostr(MFvol)+' MB'+#10+'NTFS 格式 '+floattostr(MNvol)+' MB';
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Close;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if (pos('.',Edit1.Text)>0) and (Key='.') then          //控制文本框内只能输入一个小数点
  begin
    Key:=#0;
    exit;
  end;
  if not (Key in ['0'..'9','.',#8]) then                         //控制文本框内只能输入≥0的实数
    Key:=#0;
end;

procedure TForm1.Label3MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Label3.Font.Color:=clBlue;                                  //设置Label3的字体颜色为蓝色
  Label3.Font.Style:=[fsUnderline];                       //设置Label3的字体带下划线
  Label3.Cursor:=crHandpoint;                              //设置Label3鼠标形状为手型
end;

procedure TForm1.Label3MouseLeave(Sender: TObject);
begin
  Label3.Font.Color:=clWindowText;                   //恢复Label3的字体颜色
  Label3.Font.Style:=[];                                      //恢复Label3的字体(去掉下划线)
  Label3.Cursor:=crDefault;                                //恢复Label3鼠标形状为默认
end;

procedure TForm1.Label3Click(Sender: TObject);
begin
  ShellExecute(Handle, 'open', 'http://blog.csdn.net/dfyy88', nil, nil, SW_SHOWNORMAL); //当点击Label3时打开我的博客主页
end;

end.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值