delphi 任务栏显示进度条 CreateComObject(CLSID_TaskbarList) as ITaskbarList4


本文整理自网络,侵删。

 
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.

相关阅读 >>

Delphi 字符串常识

Delphi string.split 按照任意字符串分割语句

Delphi判断mssql数据库中表格是否存在? 如何批量创建表格?

Delphi for 循环的例子 多种用法

Delphi winsocks检测某个tcp端口师傅正在被使用

Delphi 单击最小化按钮隐藏单击托盘显示

Delphi dbgrids 组件内实现查询

Delphi isdirectory 判断是否是目录

Delphi controls 属性与继承 tshape 类的小练习

Delphi源码一个对字符加密解密的实例

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...