Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi in Outlook einen Termin eintragen per ole (https://www.delphipraxis.net/27054-outlook-einen-termin-eintragen-per-ole.html)

Susanne 3. Aug 2004 15:28


in Outlook einen Termin eintragen per ole
 
Vielleicht kann mir ja jemand von euch weiterhelfen. Ich möchte aus einem anderen Programm heraus in Outlook einen Termin anlegen, aber irgendwie funktioniert das nicht.

Mit dem unten stehenden Quellcode füllt er aber eine e-mail und hängt dort die Datei an. Was habe ich also falsch gemacht? Er öffnet Outlook und er zeigt mir auch den Kalender an, also bis zu dem Punkt sollte es wohl richtig laufen, aber dann den Eintrag eines Termin in den Kalender, der funktioniert nicht mehr.

Weiss von euch jemand, woran es liegen könnte?

Ersetze ich z.B. olFolderCalendar durch olFolderContacts und olAppointmentItem durch olContactItem erscheint der Dialog zum Eingeben eines Kontaktes, aber vorher eben immer das Mailfenster und nicht das Fenster zum Eintragen eines Termins!

Gruss
Susanne

Delphi-Quellcode:
function TfrmWiedervorlage.TerminErstellenMitAnhang(test:String ):Boolean;
   const olAppointmentItem = 0;
   var
     outlook      : OleVariant;
     folder       : OleVariant;
     NmSpace      : OleVariant;
     AI           : Variant;
   begin
      try
         Outlook:=CreateOleObject('Outlook.Application');
         NmSpace := Outlook.GetNamespace('MAPI');
         NmSpace.Logon(EmptyParam, EmptyParam, False, True);
         Folder := NmSpace.GetDefaultFolder(olFolderCalendar);
         Folder.Display;
         
         //Termin einstellen
         AI:= outlook.CreateItem(olAppointmentItem);
         AI.Subject:='Message';
         //AI.Start.Add:=StrToDateTime('04.08.2004');
         AI.Attachments.Add('D:\Dateien\test.xxx', olAppointmentItem);
         AI.Save;
         Result:= True;
      except
         ShowMessage('Fehler in Funktion TerminErstellenMitAnhang');
         Result:= False;
      end;
      //Outlook nach Eintrag schliessen
      NmSpace.Logoff;
      Outlook.Quit;
      Outlook:= Unassigned;
   end;

Susanne 4. Aug 2004 15:39

Re: in Outlook einen Termin eintragen per ole
 
ok, das habe ich soweit zum laufen bekommen, das nächste Problem ist, dass Outlook nach Ausführen des Quellcodes nicht mehr richtig reagiert.

Outlook kann nicht mehr gestartet werden, und Outlook ist auch noch in den Prozessen vorhanden. Wenn ich den Prozess beende, dann kann ich auch Outlook wieder ganz normal starten. Was habe ich also hier übersehen, das kann schliesslich nicht sinn und zweck des ganzen sein.

Hansa 4. Aug 2004 15:48

Re: in Outlook einen Termin eintragen per ole
 
Delphi-Quellcode:
AI:= outlook.CreateItem(olAppointmentItem);
Du allokierst damit Speicher, ich sehe aber nicht, wo er wieder freigegeben wird. Outlook.Quit, reicht das ? AI ist doch noch da. :gruebel:

Susanne 4. Aug 2004 16:01

Re: in Outlook einen Termin eintragen per ole
 
oh mist, stimmt, danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:23 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