大家进来看看吧,我打算结束了 (50分)

  • 主题发起人 主题发起人 zjxxln
  • 开始时间 开始时间
Z

zjxxln

Unregistered / Unconfirmed
GUEST, unregistred user!
1、邮件存放问题
用数据库存放邮件好还是用自定义格式的文件存放好?为什么?
2、 while i<=n do //n=邮件总数,i:=1;
begin
Label2.Caption:=IntToStr(i)+'/'+IntToStr(n)+' ';
POP.RetrieveHeader(i);
itm := ListView2.Items.Add;
itm.Caption:='未读';
itm.SubItems.Add(Msg.FromAddress);
itm.SubItems.Add(Msg.Subject);
itm.SubItems.Add(DateTimeToStr(Msg.Date));
itm.SubItems.Add(IntToStr(Msg.AttachList.Count));
itm.SubItems.Add(InttoStr(POP.SessionMessageSize[i-1]));
i:=i+1;
end;
上面这段代码是取得所有的邮件信息,然后在ListView上显示出来,若邮件很大,
这段代码执行时cpu利用率非常大(99%),但foxmail执行时cpu利用率很小。
3、假如第i个邮件很大,则前i-1个显示都正确,后面显示的都和第i个一样。用fox循环
也这样,但是我如果在程序中将这部分程序写n编,不用循环,则没有问题。如下:
begin
Label2.Caption:=IntToStr(1)+'/'+IntToStr(n)+' ';
POP.RetrieveHeader(1);
itm := ListView2.Items.Add;
itm.Caption:='未读';
itm.SubItems.Add(Msg.FromAddress);
itm.SubItems.Add(Msg.Subject);
itm.SubItems.Add(DateTimeToStr(Msg.Date));
itm.SubItems.Add(IntToStr(Msg.AttachList.Count));
itm.SubItems.Add(InttoStr(POP.SessionMessageSize[0]));
end;
//------------
begin
Label2.Caption:=IntToStr(2)+'/'+IntToStr(n)+' ';
POP.RetrieveHeader(2);
itm := ListView2.Items.Add;
itm.Caption:='未读';
itm.SubItems.Add(Msg.FromAddress);
itm.SubItems.Add(Msg.Subject);
itm.SubItems.Add(DateTimeToStr(Msg.Date));
itm.SubItems.Add(IntToStr(Msg.AttachList.Count));
itm.SubItems.Add(InttoStr(POP.SessionMessageSize[1]));
end;
。。。。。。

 
真么没有人回答呀?
我想应该有很多人做过这方面的呀
 
1。数据库,可以自己选择,大,中,小型还是第三方的那些。。。
2,3。我没有写过,不知道。。。
 
选用数据库安全性怎么样?foxmail据说使用的自定义格式的文件。
 
大家都不愿回答吗?
 
1.用数据库,安全性,完整性都要好一些。
2.循环的中间加上Application.ProcessMessages;开始和结尾加上items.beginupdate和endupdate
 
我在循环中加了Application.ProcessMessages;
和listview.Update;不是items.beginupdate和endupdate
 
50分大少
 
我现在只有这么多份了,还剩下30份,我可以以后补上。
你开个价。
 
多人接受答案了。
 

Similar threads

I
回复
0
查看
839
import
I
I
回复
0
查看
655
import
I
后退
顶部