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

📄 sys800_02.pas.svn-base

📁 一个用Delphi开发的ERP软件
💻 SVN-BASE
字号:
unit Sys800_02;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, ComCtrls, StdCtrls, Buttons;

type
  TSys800_02Form = class(TForm)
    IdHTTP1: TIdHTTP;
    Label1: TLabel;
    ProgressBar1: TProgressBar;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
      const AWorkCount: Integer);
    procedure IdHTTP1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
      const AWorkCountMax: Integer);
    procedure IdHTTP1WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
  private
    procedure SetInterface;
    { Private declarations }
  public
    function GetDownloadFile:Boolean;
    { Public declarations }
  end;

var
  Sys800_02Form: TSys800_02Form;

implementation

uses CommFun, Sys800_01;

{$R *.dfm}

function DownloadFile(ASourceFile,ATargetFile,AProxy,AProxyPort:string):Boolean;
var
  AFileStream:TFileStream;
begin
  if AProxy<>'' then Sys800_02Form.IdHTTP1.Request.ProxyServer:=AProxy;
  if (AProxyPort<>'') and (AProxyPort<>'0') then Sys800_02Form.IdHTTP1.Request.ProxyPort:=StrToInt(AProxyPort);
  try
    Sys800_02Form.IdHTTP1.Head(ASourceFile);
  except
    Result:=False;
    Exit;
  end;

  AFileStream:=TFileStream.Create(ATargetFile,fmCreate);
  try
    Sys800_02Form.IdHTTP1.Get(ASourceFile,AFileStream);
  finally
    AFileStream.Free;
  end;
  Result:=True;
end;

procedure TSys800_02Form.SetInterface;
begin
  Font.Name:=AFontName;
  Caption:=GetDBString('SYS80002001');  //下载安装
end;

procedure TSys800_02Form.FormCreate(Sender: TObject);
begin
  SetInterface;
end;

procedure TSys800_02Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action:=caFree;
end;

procedure TSys800_02Form.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
begin
  Application.ProcessMessages;
  ProgressBar1.Position:=AWorkCount;
end;

procedure TSys800_02Form.IdHTTP1WorkBegin(Sender: TObject;
  AWorkMode: TWorkMode; const AWorkCountMax: Integer);
begin
  ProgressBar1.Max:=AWorkCountMax;
end;

procedure TSys800_02Form.IdHTTP1WorkEnd(Sender: TObject;
  AWorkMode: TWorkMode);
begin
  ProgressBar1.Position:=ProgressBar1.Max;
  ProgressBar1.Position:=0;
end;

function TSys800_02Form.GetDownloadFile:Boolean;
var
  APath,AUrl,AProxy,AProxyPort,ADownFile:string;
begin
  Screen.Cursor:=crHourGlass;
  ADownFile:=Sys800_01Form.ASetupFile;
  Label1.Caption:=GetDBString('UMS10000196')+ADownFile;  //正在下载文件:
  Update;
  AUrl:=GetSysParams('SYS0015');  //下载网址
  if AUrl[Length(AUrl)]<>'/' then AUrl:=AUrl+'/';
  AProxy:=GetSysParams('SYS0013');  //代理服务器地址
  AProxyPort:=GetSysParams('SYS0014');  //代理服务器端口

  APath:=ExtractFilePath(Paramstr(0));
  if APath[Length(APath)]<>'\' then APath:=APath+'\';
  Result:=DownloadFile(AUrl+ADownFile,APath+ADownFile,AProxy,AProxyPort);
  Screen.Cursor:=crDefault;
end;

end.

⌨️ 快捷键说明

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