Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Mehrere Kalender im Outlook (https://www.delphipraxis.net/150626-mehrere-kalender-im-outlook.html)

Muchacho 22. Apr 2010 09:22


Mehrere Kalender im Outlook
 
Hi

Ich habe im Outlook drei zusätzliche Kalender.

Wie kann ich die Namen der einzelnen Kalender per Delphi ablesen (in eine ListBox)?

Ich habe hier und im Internet sehr viel gesucht aber nichts gefunden

Gruß

Muchacho

Chemiker 22. Apr 2010 12:47

Re: Mehrere Kalender im Outlook
 
Hallo Muchacho,

vielleicht so: DP

Bis bald Chemiker

Muchacho 22. Apr 2010 13:24

Re: Mehrere Kalender im Outlook
 
Hi Chemiker,

danke für Deine Antwort, aber leider nicht.

Dort werden neue Kalender-Ordner erstellt.

Die Schwierigkeit hier ist nicht nur die Outlook Ordner/Unterordner auszulesen (das ist sehr leicht!) sondern viel mehr festzustellen,
ob ein gefundene Ordner ein selbst definierter Kalender-Ordner ist.

Ich habe nirgendwo ein Beispiel (auch nicht mal im Ansatz) gefunden.

Gruß

Muchacho

SirThornberry 22. Apr 2010 15:31

Re: Mehrere Kalender im Outlook
 
Ist es denn wirklich relevant ob es ein selbst erstellter Kalender-Ordner ist oder der defaultmäßig erstellte von Outlook?

Chemiker 22. Apr 2010 17:32

Re: Mehrere Kalender im Outlook
 
Hallo Muchacho,

es werden doch alle Kalender in eine ListBox ausgegeben. Für die Ordner die Outlook von Hause aus mitbringt gibt es Konstanten die man benutzen kann.
z.B.: olFolderCalendar für den Stammkalender.

Beispiele findest Du eigentlich in Outlook selber in VBA die in Delphi nur umgesetzt werden müssen. Blöd bei Outlook ist das man sich kein Macro aufzeichnen kann, der genau das durchführt was man haben will. So ist man gezwungen sich mit VBA für Outlook auseinander zu setzen.

Bis bald Chemiker

Muchacho 22. Apr 2010 21:48

Re: Mehrere Kalender im Outlook
 
Hi Chemiker, :-D

Du machst kleiner Denkfehler (denke ich), weil Du annimmst,
dass selbst definierte Kalender als Unterordner von Hauptkalender agieren müssen.

Natürlich, wenn die selbst definierte Kalender wie in Deinem Fall als Unterordner von:

Kalender := MeinNameSpace.GetDefaultFolder(olFolderCalendar);

angelegt wurden ist die Sache klar!

Jedoch im Outlook selbst kann man Kalender als z.B. Unterordner von Posteingang anlegen.

In diesem Fall bringt die von Dir vorgeschlagene Methode

Delphi-Quellcode:
  GetDefaultFolder(olFolderCalendar)
kein positives Resultat, da hier liefert sie keine Unterordner.

__________

Es ist so:

Man kann alle Ordner des Outlooks aus dem MAPI Protocol als z.B. OleVariant mit zuerst:

olGrundEbeneOrdner := MeinNameSpace.Folders; // Ordner der Grundebene!

und dann per Rekursion auch alle Unterordner, auslesen.

Es muss doch möglich sein einen Ordner als OleVariant zu prüfen, ob er ein Kalender Eintrag darstellt oder nicht.

Ich brauche nur die entsprechende Eigenschaft die ich abfragen könnte, wie z.B. (abstrakt):

Delphi-Quellcode:
if olFolder.FolderTyp is Kalender then

Gruß und Danke für Deine Anregungen Chemiker 8-)

Muchacho

Chemiker 22. Apr 2010 23:32

Re: Mehrere Kalender im Outlook
 
Hallo Muchacho,


Zitat:

Natürlich, wenn die selbst definierte Kalender wie in Deinem Fall als Unterordner von:
Delphi-Quellcode:
Kalender := MeinNameSpace.GetDefaultFolder(olFolderCalendar);

Damit wird nur der Root-Ordner Kalender bestimmt. Damit wird noch nicht ein Unterordner angelegt. Danach wird rekursive alle Kalender bestimmt.

Zitat:

Jedoch im Outlook selbst kann man Kalender als z.B. Unterordner von Posteingang anlegen.
Das geht meiner Meinung nicht. Man kann in zwar im Posteingang anlegen, aber er wird anschließend als Item unter dem Root-Ordner Kalender eingefügt.
Mit dem Quellcode der ich in Beitrag #2 angegeben habe, werden alle Kalender in eine TObjectList eingetragen.
Zitat:

und dann per Rekursion auch alle Unterordner, auslesen.
Genau das wird in den Zeilen:
Delphi-Quellcode:
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;
gemacht.
Vielleicht führen die von mir gewählten Bezeichnungen zu Irritationen, jedenfalls werden damit die Unterordner vom Root-Kalender in die ObjectList gespeichert und zwar rekursiv.
Bis bald Chemiker

Muchacho 23. Apr 2010 08:40

Re: Mehrere Kalender im Outlook
 
Hallo Chemiker, :-D

diese Diskussion führt zur gar nichts.

Längst bevor ich hier meine Frage gestellt habe, habe ich auch überprüft, ob Deine Source mir helfen konnte.

Es ist leider nicht der Fall.

In meinem vorherigen Beitrag habe ich genau beschrieben was ich erreichen möchte.

Wenn Du es besser weißt :idea: , dann poste bitte hier eine kleine Funktion die das macht, also
die alle Kalender auflistet die z.B. im Posteingang angelegt wurden. :mrgreen:

Gruß

Muchacho


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz