Einzelnen Beitrag anzeigen

Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Outlook auf einem 2 Kalender Termine eintragen.

  Alt 18. Mär 2010, 23:49
Hallo,

mit dieser Routine kann man alle Outlook-Kalender in einer TObjectList ablegen.
Über die erhalten Daten ist es dann möglich den zweiten Kalender anzusprechen und einen Termin neu anzulegen.

Delphi-Quellcode:
procedure Tfrm_e_Mail_versenden_Demo.btnTListKalenderSpeichernClick(
  Sender: TObject);

  procedure ListeEintragen(aFolder: MAPIFolder; aKalenderListe:TObjectList);
  var
    aKalenderEintrag: THPLKalenderItem;
  begin
    aKalenderEintrag:= THPLKalenderItem.Create;
    aKalenderEintrag.KalenderID:= aFolder.EntryID;
    aKalenderEintrag.KalenderName:= aFolder.name;
    aKalenderEintrag.KalenderParent:= aFolder.FolderPath;
    aKalenderListe.Add(aKalenderEintrag);
  end;

  procedure NeuerOrdner (aUnterOrdner: MAPIFolder; aKalenderListe: TObjectList);
  var
    i: Integer;
  begin
    for I := 1 to aUnterOrdner.Folders.Count do
    begin
      ListeEintragen(aUnterOrdner.Folders.Item(i), aKalenderListe);
      NeuerOrdner(aUnterOrdner.Folders.Item(i), aKalenderListe);
    end;
  end;

var
  MeinNameSpace: NameSpace;
  Kalender: MAPIFolder;
  UnterOrdner: MAPIFolder;
  KalenderListe: TObjectList;
  I: integer;
begin
  KalenderListe:= TObjectList.Create;
  try
    OutlookApplication1.Connect;
    MeinNameSpace:= OutlookApplication1.GetNamespace('MAPI');
    MeinNameSpace.Logon('','', FALSE, FALSE);
    Kalender := MeinNameSpace.GetDefaultFolder(olFolderCalendar);
    UnterOrdner:= Kalender;
    ListeEintragen(UnterOrdner, KalenderListe);
    NeuerOrdner(UnterOrdner, KalenderListe);
    // Zum Testen ausgeben.
    ListBox1.Clear;
    for I := 0 to KalenderListe.Count - 1 do
    begin
      ListBox1.Items[i]:= THPLKalenderItem(KalenderListe.Items[i]).KalenderName;
    end;

    MeinNameSpace.Logoff;
    OutlookApplication1.Quit;
    OutlookApplication1.Disconnect;
  finally
    freeAndNil(KalenderListe);
  end;
end;
Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat