2

我正在尝试将我们的程序与 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);
4

0 回答 0