- UID
- 14878
注册时间2006-6-4
阅读权限30
最后登录1970-1-1
龙战于野

该用户从未签到
|
Delphi自带的进度条控件很一般,看到别人的进度条都很漂亮,好仙幕的说...
几次冲动之下很想为自的程序的进度条也美化一下,怎么做呢?
一般有2种方法:
1、用第三方控件 //又不想用到第三方
2、自已画出来 //难度太大,非我等菜鸟能做到
下面介绍第3种方法:
几经思量之下,终于想出了个方法,哈~~~(看下面代码吧)
unit Unit1;
inte***ce
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialog*, **tCtrls, StdCtrls, ComCtrls;
type
TFrm_PanelBar = class(TForm)
Button1: TButton;
Timer1: TTimer;
Button2: TButton;
BarFrame: TPanel;
PanelBar: TImage;
PanelLab: TLabel;
CheckBox1: TCheckBox;
ColorBox1: TColorBox;
Label1: TLabel;
Bevel1: TBevel;
procedure Timer1Timer(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure ColorBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_PanelBar: TFrm_PanelBar;
implementation
{$R *.dfm}
procedure TFrm_PanelBar.Timer1Timer(Sender: TObject);
var n,m:integer; //变量
begin
//-----------------------------显示进度条状态--------------------------------
PanelBar.Width:=PanelBar.Width+1;
n:=PanelBar.Width;
m:=BarFrame.Width-2;
Panellab.Caption:=FormatFloat('0',n/m*100)+'%';
//-----------------------------循环滚动进度条--------------------------------
if PanelBar.Width=BarFrame.Width-2 then PanelBar.Width:=0;
end;
procedure TFrm_PanelBar.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=true;
end;
procedure TFrm_PanelBar.Button2Click(Sender: TObject);
begin
Timer1.Enabled:=False;
end;
procedure TFrm_PanelBar.FormCreate(Sender: TObject);
begin
//-----------------------------初始化数据-------------------------------------
PanelBar.Left:=1;
PanelBar.Top:=1;
PanelBar.Width:=0;
PanelBar.Height:=BarFrame.Height-2;
PanelLab.Top:=(BarFrame.Height-PanelLab.Height) div 2;
PanelLab.Left:=(BarFrame.width-PanelLab.width) div 2;
//-------------------------------开双缓区-------------------------------------
self.DoubleBuffered:=true;
end;
procedure TFrm_PanelBar.CheckBox1Click(Sender: TObject);
begin
//------------------------------是否显示进度标签-----------------------------
PanelLab.Visible:=not PanelLab.Visible;
end;
procedure TFrm_PanelBar.ColorBox1Change(Sender: TObject);
begin
//------------------------------设置背景颜色---------------------------------
BarFrame.Color:=ColorBox1.Selected;
end;
end. |
|