unit Unit9;
interface
uses
System.Classes, System.SysUtils, Vcl.Controls, Vcl.Forms, Vcl.StdCtrls,
Vcl.ExtCtrls, ShlObj;
//ShellAPI, ObjectArray, PropSys, ExtCtrls, ImgList, DwmApi;
type
TForm9 = class(TForm)
btnProgressbar: TButton;
tmr1: TTimer;
edtValue: TEdit;
btnSetValue: TButton;
procedure FormCreate(Sender: TObject);
procedure btnProgressbarClick(Sender: TObject);
procedure tmr1Timer(Sender: TObject);
procedure btnSetValueClick(Sender: TObject);
private
{ Private declarations }
TBL: ITaskbarList4;
I: Integer;
public
{ Public declarations }
end;
var
Form9: TForm9;
implementation
uses ComObj;
//uses ActiveX, ComObj, Math;
{$R *.dfm}
procedure TForm9.btnSetValueClick(Sender: TObject);
begin
TBL.SetProgressValue(Handle, StrToIntDef(edtValue.Text, 50), 100); //设置值 和最大值
end;
procedure TForm9.btnProgressbarClick(Sender: TObject);
begin
tmr1.Enabled := not tmr1.Enabled;//定时器
end;
procedure TForm9.FormCreate(Sender: TObject);
begin
I := 0;
TBL := CreateComObject(CLSID_TaskbarList) as ITaskbarList4; //创建对象
TBL.SetProgressState(Handle, TBPF_NOPROGRESS or TBPF_INDETERMINATE); //初始化
// or TBPF_INDETERMINATE
end;
procedure TForm9.tmr1Timer(Sender: TObject);
begin
if I < 100 then
Inc(I);
TBL.SetProgressValue(Handle, I, 100);
if I >= 100 then
begin
TBL.SetProgressState(Handle, TBPF_NOPROGRESS);
tmr1.Enabled := False;
I := 0;
end;
end;
end.