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 Formattierung vom Body bei Aufgaben (https://www.delphipraxis.net/98151-formattierung-vom-body-bei-aufgaben.html)

OLLI_S 22. Aug 2007 11:01


Formattierung vom Body bei Aufgaben
 
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

mkinzler 22. Aug 2007 11:10

Re: Formattierung vom Body bei Aufgaben
 
.body ist ja die Klartextversion der Nachricht. die formatierte (RTF bzw HTML) ist als Anhang angefügt.

OLLI_S 22. Aug 2007 11:22

Re: Formattierung vom Body bei Aufgaben
 
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

OLLI_S 11. Sep 2007 19:52

Re: Formattierung vom Body bei Aufgaben
 
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

Remko 12. Sep 2007 12:15

Re: Formattierung vom Body bei Aufgaben
 
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.

OLLI_S 24. Nov 2007 15:27

Re: Formattierung vom Body bei Aufgaben
 
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


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