⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.pas

📁 特性: 1、阻塞模式更新 2、具备比较完备的进度控制 3、与autoupgrader组件相比
💻 PAS
字号:
unit Main;

interface

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

type
  TfrmMain = class(TForm)
    ProgressBar1: TProgressBar;
    ProgressBar2: TProgressBar;
    Memo1: TMemo;
    Label1: TLabel;
    btnStart: TButton;
    btnPause: TButton;
    btnResume: TButton;
    btnStop: TButton;
    Upgrader1: TUpgrader;
    procedure btnStartClick(Sender: TObject);
    procedure btnPauseClick(Sender: TObject);
    procedure btnResumeClick(Sender: TObject);
    procedure btnStopClick(Sender: TObject);
    procedure Upgrader1Progress2(const SingleProgress,
      MultiProgress: Integer; const RemnantTime, Speed,
      ulStatusCode: Cardinal; szStatusText: PWideChar);
    procedure Upgrader1FileBegin(const url, localfile: String;
      const Size: Int64);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

function GetTimeString(const Time: Cardinal): string;
begin
  Result := '';
  if Time >= 3600 then
    Result := Format('%d小时%2d分钟%2d秒钟', [(Time div 3600), ((Time mod 3600) div 60), (Time mod 60)])
  else begin
    if Time >= 60 then
      Result := Format('%2d分钟%2d秒钟', [(Time div 60), (Time mod 60)])
    else
      Result := IntToStr(Time) + '秒钟';
  end;
end;

procedure TfrmMain.btnStartClick(Sender: TObject);
begin
  Upgrader1.Start;
end;

procedure TfrmMain.btnPauseClick(Sender: TObject);
begin
  Upgrader1.Pause;
end;

procedure TfrmMain.btnResumeClick(Sender: TObject);
begin
  Upgrader1.Resume;
end;

procedure TfrmMain.btnStopClick(Sender: TObject);
begin
  Upgrader1.Stop;
end;

procedure TfrmMain.Upgrader1Progress2(const SingleProgress,
  MultiProgress: Integer; const RemnantTime, Speed, ulStatusCode: Cardinal;
  szStatusText: PWideChar);
begin
  ProgressBar1.Position := SingleProgress;
  ProgressBar2.Position := MultiProgress;
  Label1.Caption := Format('剩余时间: %s   速度: %d kb/s', [GetTimeString(RemnantTime), Speed]);
end;

procedure TfrmMain.Upgrader1FileBegin(const url, localfile: String;
  const Size: Int64);
begin
  Memo1.Lines.Add(url + '===>' + localfile);
end;

end.

⌨️ 快捷键说明

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