Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Outlook auf einem 2 Kalender Termine eintragen. (https://www.delphipraxis.net/148731-outlook-auf-einem-2-kalender-termine-eintragen.html)

Chemiker 7. Mär 2010 11:28


Outlook auf einem 2 Kalender Termine eintragen.
 
Hallo,

über OLE möchte ich mit Delphi Termine in einem zweiten Outlook-Kalender eintragen, in den normalen Kalender ist das kein Problem, aber wie kann ich den 2 Kalender aktivieren, um anschließend Termine einzutragen?

Bis bald Chemiker

Chemiker 8. Mär 2010 23:00

Re: Outlook auf einem 2 Kalender Termine eintragen.
 
Hallo,

Problem ist gelöst.

Bis bald Chemiker

TBx 9. Mär 2010 06:01

Re: Outlook auf einem 2 Kalender Termine eintragen.
 
verrätst Du uns auch bitte, wie Du es gelöst hast?

Chemiker 18. Mär 2010 23:49

Re: Outlook auf einem 2 Kalender Termine eintragen.
 
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

Chemiker 20. Jul 2010 13:50

AW: Outlook auf einem 2 Kalender Termine eintragen.
 
Hallo,
die THPLKalenderItem – Class hatte ich wohl vergessen mit anzugeben. Ich habe sie mal auf das wesentliche gekürzt:
Delphi-Quellcode:
type
   THPLKalenderItem= Class(TObject)
   private
     FKalenderID: String;
     FKalenderStoreID: String;
     FKalenderName: String;
     FKalenderParent: String;
     FKalenderAnzahl: integer;

     function GetFKalenderAnzahl: integer;
     function GetFKalenderID: String;
     function GetFKalenderName: String;
     function GetFKalenderParent: String;
     procedure SetFKalenderAnzahl(const Value: integer);
     procedure SetFKalenderID(const Value: String);
     procedure SetFKalenderName(const Value: String);
     procedure SetFKalenderParent(const Value: String);
     function GetFKalenderStoreID: String;
     procedure SetFKalenderStoreID(const Value: String);
   public
     property KalenderID: String read GetFKalenderID write SetFKalenderID;
     property KalenderName: String read GetFKalenderName write SetFKalenderName;
     property KalenderParent: String read GetFKalenderParent
       write SetFKalenderParent;
     property KalenderAnzahl: integer read GetFKalenderAnzahl
       write SetFKalenderAnzahl;
     property KalenderStoreID: String read GetFKalenderStoreID
       write SetFKalenderStoreID;
   end;

{ THPLKalenderItem }

function THPLKalenderItem.GetFKalenderAnzahl: integer;
begin
  result:= FKalenderAnzahl;
end;

function THPLKalenderItem.GetFKalenderID: String;
begin
  result:= FKalenderID;
end;

function THPLKalenderItem.GetFKalenderName: String;
begin
  result:= FKalenderName;
end;

function THPLKalenderItem.GetFKalenderParent: String;
begin
  result:= FKalenderParent;
end;

function THPLKalenderItem.GetFKalenderStoreID: String;
begin
  result:= FKalenderStoreID;
end;

procedure THPLKalenderItem.SetFKalenderAnzahl(const Value: integer);
begin
  if Value<>FKalenderAnzahl then
  begin
    FKalenderAnzahl:= Value;
  end;
end;

procedure THPLKalenderItem.SetFKalenderID(const Value: String);
begin
  if Value<>FKalenderID then
  begin
    FKalenderID:= Value;
  end;
end;

procedure THPLKalenderItem.SetFKalenderName(const Value: String);
begin
  if Value<>FKalenderName then
  begin
    FKalenderName:= Value;
  end;
end;

procedure THPLKalenderItem.SetFKalenderParent(const Value: String);
begin
  if Value<>FKalenderParent then
  begin
    FKalenderParent:= Value;
  end;
end;

procedure THPLKalenderItem.SetFKalenderStoreID(const Value: String);
begin
   if Value<>FKalenderStoreID then
  begin
    FKalenderStoreID:= Value;
  end
end;
Bis bald Chemiker


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:42 Uhr.

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