我正在尝试将我们的程序与outlook和我的测试代码集成在一起(类似的工作)但有以下问题。
在测试中我能够添加约会。然后手动将约会移动到另一个日期/时间并重新运行测试程序并将其移回(如预期的那样)。但...
当一个项目被删除时,下面的代码仍然可以找到该项目(不知何故!)。我甚至手动从Outlook中的“已删除邮件”文件夹中删除了该项目。
结果,因为它“找到”约会,然后它会尝试更新它,从而产生AV。我怀疑在使用find函数时出现了问题,但我想要做的是使用userProperties从我们的系统中添加一些内容以添加到outlook中的约会项目中并在需要时更新。但是还需要能够处理用户可能手动从日历中删除项目的情况。非常感谢任何协助。
folder := ns.GetDefaultFolder(olFolderCalendar);
if not VarIsNull(folder) and not VarIsEmpty(folder) then
begin
try
appointment := folder.Items.Find('[MyRecProperty2]=' + quotedStr(1001));
entryFound := true;
except
end;
if (not entryFound) or
(varType(Appointment)=varNull) or
(varType(Appointment)=varEmpty) then
begin
appointment := folder.Items.Add(olAppointmentItem);
prop := appointment.UserProperties.Add('MyRecProperty2',olText,True);
prop.Value := '1001';
NewAppointment(appointment);
end
else
begin
showmessage('updating appointment!');
FillAppointment(appointment, false);
end;
showmessage('saving appointment!');
appointment.Save;
//showmessage('display appointment!');
//appointment.Display(true);