TFbmItem.Preview

Diese Funktion ist eine Methode der Klasse TFbmItem und welche in der Unit Item definiert wurde. Der Funktionstyp ist Funktion. Der Rückgabetyp ist vom Typ string.
Die Funktion verlangt folgende Parameter:
Parameter
Typ
Beschreibung
DataType TFbmItemPreviewDataType Der gewünschte Datentyp für die Vorschau.
Erzeugt eine Vorschau des Elements. Das Ergebnis ist das selbe, wie im GREYHOUND Client bei der Erstellung von Elementen im Reiter "Vorschau". Falls die Vorschau als Datei gespeichert werden soll, kann die Funktion TFbmSaveStrToFile verwendet werden.
Text aus Element extrahieren:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var
  OldTemplateRef: Integer;
  Text: string;

begin
  // Aktuelles Template für die Vorschau ermitteln
  OldTemplateRef := Item.TemplateRef;

  // Wir setzen das Template für die Nachricht auf 0, damit kein zusätzlicher Text eingefügt wird:
  Item.TemplateRef := 0;

  // Nun wandeln wir das Element in Text um:
  Text := Item.Preview(ipdtTxt); // Bei eingehenden Nachrichten benötigt man NUR diese Zeile

  // Altes Template wieder setzen
  Item.TemplateRef := OldTemplateRef;

  // Hier kann nun mit der Variable Text weitergearbeitet werden (RegEx, etc.)
  // [...]
end.
Das Code-Beispiel behandelt ausgehende und eingehende Nachrichten. Wird eine Regel für eingehende Nachrichten erstellt, dann kann das speichern und setzen der TemplateRef entfallen. Eingehende Nachrichten haben i.d.R. kein Template gesetzt.

Element in das Text-Format umwandeln:
1
2
3
4
5
6
7
8
9
10
11
12
13
var
  OldTemplateRef: Integer;

begin
  if ifUseHtml in Item.Flags then
  begin
    OldTemplateRef := Item.TemplateRef;
    Item.TemplateRef := 0;
    Item.ViewData := Item.Preview(ipdtTxt);
    Item.Flags := Item.Flags - [ifUseHtml];
    Item.TemplateRef := OldTemplateRef;
  end;
end.
Dieses Code-Beispiel wandelt eine Nachricht in das Text-Format um, sofern aktuell HTML verwendet wird.

Die ursprüngliche HTML-Formatierung kann nach dieser Umwandlung nicht wieder hergestellt werden.


Die Umwandlung in Text geht aber auch noch einfacher:
Umwandlung in Text:
1
2
3
4
5
6
7
begin
  if ifUseHtml in Item.Flags then
  begin
    Item.ViewData = Item.TextViewData;
    Item.Flags := ItemFlags - [ifUseHtml];
  end;
end.

Die ursprüngliche HTML-Formatierung kann nach dieser Umwandlung ebenfalls nicht wieder hergestellt werden.