关于indy的问题-用indy的smtp和pop3收发邮件过程中怎样实现进度条 (200分)

  • 主题发起人 主题发起人 Delphi_1.0
  • 开始时间 开始时间
D

Delphi_1.0

Unregistered / Unconfirmed
GUEST, unregistred user!
idsmtp和idpop3都有一個onWork事件三個參數
SMTPWork(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);

AWorkCount表示當前已經完成(收或者發)的byte
你看一下Help就會明白的.很好用.也正合你用
 
//以indyPop3为例
procedure TForm1.IdPOP31WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
begin
progressBar1.Max:=AWorkcountMax;
progressBar1.Position:=0;
end;

procedure TForm1.IdPOP31Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
progressBar1.Position:=AWorkCount;
end;

procedure TForm1.IdPOP31WorkEnd(Sender: TObject; AWorkMode: TWorkMode);
begin
progressBar1.Position:=0;
end;
 
需要注意AWorkCountMax常常為0表示大小未知,
要當心[:)]
 
Richard3000:我的怎么老是0?
怎么办?
 
Delphi_1.0有兩個辦法
1.在WorkBegin中自己寫GetSize
2.等待Indy的后繼版本...[:D][:D][:D]
 
总觉得如果你自己的软件需要加入进度条功能你最好自己用Winsock API来写,这样好控制
如果你用控件可能无法满足你的要求
 
后退
顶部