AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Formattierung vom Body bei Aufgaben
Thema durchsuchen
Ansicht
Themen-Optionen

Formattierung vom Body bei Aufgaben

Offene Frage von "OLLI_S"
Ein Thema von OLLI_S · begonnen am 22. Aug 2007 · letzter Beitrag vom 24. Nov 2007
Antwort Antwort
OLLI_S

Registriert seit: 20. Aug 2006
19 Beiträge
 
Delphi 7 Architect
 
#1

Formattierung vom Body bei Aufgaben

  Alt 22. Aug 2007, 12:01
Hallo,

ich habe ein Programm (Borland Delphi 7) geschrieben, das alle Aufgaben aus Outlook ausließt.
Funktioniert perfekt.

Dafür verwende ich das Objekt TaskItem.
Ich kann also mit TaskItem.Subject den Betreff auslesen.

Ich habe nur das Problem, dass TaskItem.Body mir zwar die Beschreibung der Aufgabe zurück liefert, aber leider OHNE die Formatierungen (wie Fett, Aufzählungen, Textfarben, etc.).

In der Outlook-VBA-Hilfe steht zu TaskItem.Body:
Gibt einen String zurück, der den unformatierten Textkörper des Microsoft Outlook-Elements darstellt...

Wie komme ich an den formatierten Text ran?

Danke für Eure Hilfe!


Gruß


OLLI
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Formattierung vom Body bei Aufgaben

  Alt 22. Aug 2007, 12:10
.body ist ja die Klartextversion der Nachricht. die formatierte (RTF bzw HTML) ist als Anhang angefügt.
Markus Kinzler
  Mit Zitat antworten Zitat
OLLI_S

Registriert seit: 20. Aug 2006
19 Beiträge
 
Delphi 7 Architect
 
#3

Re: Formattierung vom Body bei Aufgaben

  Alt 22. Aug 2007, 12:22
Hallo,

danke für die schnelle Antwort.

Wenn ich auf TaskItem.Attachments.Count zugreife, um mir die Anzahl der Anhänge ausgeben zu lassen, bekomme ich eine 0 geliefert.
Wie kann ich also auf den formatierten Body zugreifen?

Gruß


OLLI
  Mit Zitat antworten Zitat
OLLI_S

Registriert seit: 20. Aug 2006
19 Beiträge
 
Delphi 7 Architect
 
#4

Re: Formattierung vom Body bei Aufgaben

  Alt 11. Sep 2007, 20:52
Hallo,

ich habe alle Attribute, die mir Outlook bei einer Aufgabe zur Verfügung stellt, durchgegangen aber leider finde ich keine Lösung.

Kannst Du mir bitte eine Lösung sagen, wie ich auf den RTF-Formatierten Text zugreifen kann?
Ich komme da nicht weiter.

Danke für die Hilfe!

Gruß


OLLI
  Mit Zitat antworten Zitat
Benutzerbild von Remko
Remko

Registriert seit: 10. Okt 2006
Ort: 's-Hertogenbosch, Die Niederlande
222 Beiträge
 
RAD-Studio 2010 Arc
 
#5

Re: Formattierung vom Body bei Aufgaben

  Alt 12. Sep 2007, 13:15
You can check the BodyFormat property:
Delphi-Quellcode:
type
  OlBodyFormat = TOleEnum;
const
  olFormatUnspecified = $00000000;
  olFormatPlain = $00000001;
  olFormatHTML = $00000002;
  olFormatRichText = $00000003;
For RTF and plaintext the body is in the body property, for HTML and unspecified the body is in HTMLBody.
  Mit Zitat antworten Zitat
OLLI_S

Registriert seit: 20. Aug 2006
19 Beiträge
 
Delphi 7 Architect
 
#6

Re: Formattierung vom Body bei Aufgaben

  Alt 24. Nov 2007, 16:27
Hallo,

ich bin leider längere Zeit nicht zum Programmieren gekommen, daher konnte ich das nicht nachvollziehen.

Zuerst mal meine Sourcen, wie ich meine Aufgaben (Tasks) aus Outlook auslese (bei einem ButtonClick).
Damit es nicht zu viele Sourcen werden, habe ich nur die jeweils relevanten Teile geschrieben.
Der ursprüngliche Code ist natürlich länger....

Delphi-Quellcode:

procedure TForm1.Button1Click(Sender: TObject);

var
   Outlook, NameSpace, Tasks, Task: OleVariant;
   TotalTasksCount: Integer;
   Counter: Integer;

const
   olFolderTasks = 13;

begin
   Outlook := CreateOleObject('Outlook.Application');
   NameSpace := Outlook.GetNameSpace('MAPI');

   Tasks := NameSpace.GetDefaultFolder(olFolderTasks);

   TotalTasksCount := (Tasks.Items.Count);

   if TotalTasksCount = 0 then begin // There are NO tasks in Outlook

      ShowMessage('You have NO Tasks stored in Outlook!');

   end else begin // There ARE tasks in Outlook

      for Counter := 1 to TotalTasksCount do begin

         Task := Tasks.Items.Item(Counter);
         mmoLog.Lines.Add('Subject/Betreff : ' + Task.Subject);
         mmoLog.Lines.Add('Attachments Counter/Anzahl Anhänge : ' + IntToStr(Task.Attachments.Count));
         mmoLog.Lines.Add(Task.Body);

      end; // of counter loop

   end; // There ARE tasks in Outlook

   Outlook := UnAssigned;

end;
Dieses Beispiel fügt aus allen Aufgaben den Betreff, die Anzahl von Anhängen und den Body in ein Memo-Feld hinzu.
Das ganze funktioniert sehr gut.
Das einzige Problem ist, dass Body keine Formatierungen mitliefert.

Ich habe eine Aufgabe angelegt, die einen formatierten Body hat.
Diese hat bei Task.Attachments.Count den Wert 0.
Also haben formatierte Aufgaben keine Attachments.

Greife ich auf Task.HTMLBody zu, wird eine Exception geworfen (Methode "HTMLBody" wird vom Automatisierungsobjekt nicht unterstützt).

Der User Remko meinte "For RTF and plaintext the body is in the body property".
Wenn ich aber den Body der einen Aufgabe in ein RTF Control reinschreibe (und nicht in ein TMemo) dann wird der auch nicht formatiert angezeigt (da ja in der Outlook-VBA-Hilfe steht "Gibt einen String zurück, der den unformatierten Textkörper des Microsoft Outlook-Elements darstellt...").

Wie komme ich also an den formatierten Body einer Aufgabe ran?
Also nicht der Body einer Mail......

Danke und Gruß


OLLI
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:20 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