|

楼主 |
发表于 2008-11-20 14:55:01
|
显示全部楼层
问题现在OK了!
可以结贴了!
下面是做了修改的部分:
procedure TMailCenterForm.actAllSRMailExecute(Sender: TObject);
begin
……
MailSystem.StartMailExchange(True, True);
//增加
ReloadMailBox;
procedure TMailCenterForm.MovePath(const AFolderID, ASrcFolderID, ADesFolderID: string);
var
lKind: Integer;
lNode, lDesNode: TTreeNode;
begin
……
//移动树上的节点
//增加
if FindTreeListNodeByTreeNode(lNode) <> nil then
procedure TMailCenterForm.actDeleteUpdate(Sender: TObject);
var
lFolderObject: TMailFolderObject;
begin
//修改
if Assigned(glMail) and (Forms.Screen.ActiveControl = glMail) and (glMail.SelectedCount > 0) then
actDelete.Enabled := True
procedure TMailCenterForm.actRenameUpdate(Sender: TObject);
var
lFolderObject: TMailFolderObject;
begin
……
actRename.Enabled := (tvMail.Selected.Level > 1) or
//修改
(Assigned(lFolderObject) and (lFolderObject.Kind = mtFolder));
end;
end;
procedure TMAILCENTERFORM.actSortByAscUpdate(Sender: TObject);
begin
//修改
actSortByAsc.Checked := Assigned(FLastRightClickColumn) and (FLastRightClickColumn.Sorted = TTreeListColumnSort.csUp);
actSortByDesc.Checked := Assigned(FLastRightClickColumn) and (FLastRightClickColumn.Sorted = TTreeListColumnSort.csDown);
end;
procedure TMAILCENTERFORM.glMailContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean);
var
lPos: TPoint;
lColumn: TTreeListColumn;
begin
//增加
FLastRightClickColumn := nil;
……
procedure TMAILCENTERFORM.actStatePropertyUpdate(Sender: TObject);
begin
//修改
TAction(Sender).Enabled := assigned(tvMail.Selected) and (glMail.SelectedCount > 0) and Assigned(TMailFolderObject(tvMail.Selected.Data)) and (TMailFolderObject(tvMail.Selected.Data).Kind = mtSent);
end;
procedure TMAILCENTERFORM.actFetchUpdate(Sender: TObject);
var
lFolderObject: TMailFolderObject;
I: Integer;
lState: Boolean;
lStateValue: string;
lQuery: TQuery;
begin
if glMail.SelectedCount <> 1 then
begin
TAction(Sender).Enabled := False;
Exit;
end;
//增加
if not (Assigned(glMail.SelectedNodes[0]) and Assigned(glMail.SelectedNodes[0].Data)) then
begin
TAction(Sender).Enabled := False;
Exit;
end;
lQuery := TQuery.Create(nil);
try
lQuery.ConnectionString := TRTLConsts.CollaborationDatabaseConnectionString;
//修改
lQuery.CommandText := 'SELECT * FROM TMAILREFERENCE WHERE FGUID = ''' + TMailReference(glMail.SelectedNodes[0].Data).MailGUID + ''' and FPATHGUID = ''BIZ_INBOX''';
lQuery.Open;
for I := 0 to lQuery.recordcount - 1 do
begin
lStateValue := lQuery.FieldByName('FSTATE').AsString;
if (SysUtils.StrToInt(lStateValue) and msReaded) <> msReaded then
begin
lState := True;
Break;
end
else
lState := False;
lQuery.Next;
end;
//修改
if Assigned(tvMail.Selected) then lFolderObject := TMailFolderObject(tvMail.Selected.Data)
else lFolderObject := nil;
TAction(Sender).Enabled := Assigned(lFolderObject) and (lFolderObject.Kind = mtSent) and lState;
finally
lQuery.Free;
end;
end; |
|