Indy控件的SMTP问题(100分)

  • 主题发起人 主题发起人 肥牛
  • 开始时间 开始时间

肥牛

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用Indy开发SMTP,想获取发送邮件的进度,使用如下的方式
procedure TForm1.SMTPWork(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
if ProgressBar1.Max >0 then
begin
ProgressBar1.Position := AWorkCount * 100 div ProgressBar1.Max;
UpdateControlState;
end;
end;

procedure TForm1.SMTPWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
begin
ProgressBar1.Position :=0;
ProgressBar1.Max :=AWorkCountMax;
UpdateControlState;
end;
而为什么AWorkCountMax每次都是0?
 
没有人回答?
 
試試如下代碼
procedure TForm1.SMTPWork(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
if ProgressBar1.Position < ProgressBar1.MAX then
begin
ProgressBar1.Position := AWorkCount * 100 div ProgressBar1.Max;
UpdateControlState;
Application.ProcessMessages;
end;
end;

procedure TForm1.SMTPWorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
begin
ProgressBar1.Position :=0;
ProgressBar1.Max :=AWorkCountMax;
UpdateControlState;
Application.ProcessMessages;
end;
 
不行,你增加的Application.ProcessMessages在这里不起作用。
 
后退
顶部