我正在尝试下载文件,同时状态显示在进度条中。
我按照此处的说明操作: http://delphi.about.com/cs/adptips2003/a/bltip0903_2.htm
这是我的代码:
unit unitUpdate;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, StdCtrls, ComCtrls, ExtActns;
type
TForm5 = class(TForm)
ProgressBar1: TProgressBar;
SaveDialog1: TSaveDialog;
private
procedure URL_OnDownloadProgress
(Sender: TDownLoadURL;
Progress, ProgressMax: Cardinal;
StatusCode: TURLDownloadStatus;
StatusText: String; var Cancel: Boolean) ;
function DoDownload: boolean;
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
{$R *.dfm}
procedure TForm5.URL_OnDownloadProgress;
begin
ProgressBar1.Max:= ProgressMax;
ProgressBar1.Position:= Progress;
end;
function TForm5.DoDownload: Boolean;
begin
ShowMessage('A new update is available!');
savedialog1.Title := 'Save Update';
savedialog1.Filter := 'Exe Files (*.exe)|*.exe';
savedialog1.Execute;
if savedialog1.filename = '' then
Application.Terminate
else begin
with TDownloadURL.Create(self) do
try
URL:='linktofile';
FileName := savedialog1.FileName + '.exe';
OnDownloadProgress := TForm5.URL_OnDownloadProgress;
ExecuteTarget(nil) ;
finally
Free;
end;
end;
end;
end.
编译后,我收到以下错误:
[DCC Error] unitUpdate.pas(50): E2010 Incompatible types: 'TDownloadProgressEvent' and 'Procedure'
这是指这行代码:
OnDownloadProgress := TForm5.URL_OnDownloadProgress;
我无法修复此错误.. 任何帮助将不胜感激。
感谢。
答案 0 :(得分:5)
TForm5.URL_OnDownloadProgress
不是一个有效的句子,你必须使用形式的实例(而不是tyoe),所以尝试写这样的东西
OnDownloadProgress := Self.URL_OnDownloadProgress;
或
OnDownloadProgress := URL_OnDownloadProgress;
答案 1 :(得分:2)
删除TForm5:
OnDownloadProgress := URL_OnDownloadProgress