读书人

idimap4控件中storeflags函数赋值有关

发布时间: 2012-03-25 20:55:17 作者: rapoo

idimap4控件中storeflags函数赋值问题,急!
实在愚钝,这个值不知怎样赋值进去,就是将一个邮件标示为已读标示
mainfrm.pas
......
var
TheFlags: TIdMessageFlagsSet;
SearchKey:TIdIMAP4SearchKey;
setFlags:TIdMessageFlags;
begin
THEImap.StoreFlags(i,sdadd,TheFlags);

问题:TheFlags这个不知怎样赋值,原型是:function StoreFlags(const AMsgNumList: array of Integer; const AStoreMethod: TIdIMAP4StoreDataItem; const AFlags: TIdMessageFlagsSet): Boolean;第一二个参数都知,但第三个参数不知怎样赋值进去,使之为mfseen;

相关说明:
第二个参数的值在idimap4.pas中
TIdIMAP4StoreDataItem = ( sdReplace, sdReplaceSilent, sdAdd, sdAddSilent, sdRemove, sdRemoveSilent );

第三个参数的值在IDmessage.pas中但却不知道怎样赋值了,因为相关的参数转了一下,不知怎样把TIDmessageflags中的mfseen什赋到上面函数里去。TIdMessageFlagsSet与TIdMessageFlags 的关系是如下:
TIdMessageFlags =
( mfAnswered, //Message has been answered.
mfFlagged, //Message is "flagged" for urgent/special attention.
mfDeleted, //Message is "deleted" for removal by later EXPUNGE.
mfDraft, //Message has not completed composition (marked as a draft).
mfSeen, //Message has been read.
mfRecent ); //Message is "recently" arrived in this mailbox.
TIdMessageFlagsSet = set of TIdMessageFlags;





[解决办法]
集合用中括号,逗号分开,直接传成员

TheFlags:=[mfSeen,mfRecent]; //要几个传几个
StoreFlags[i,sdadd,TheFlags];

[解决办法]

探讨
集合用中括号,逗号分开,直接传成员

TheFlags:=[mfSeen,mfRecent]; //要几个传几个
StoreFlags(i,sdadd,TheFlags); //或者StoreFlags(i,sdadd,[mfSeen,mfRecent]);

读书人网 >.NET

热点推荐