Version 1.02. Letzte Änderung am 2000-06-06. | English version of this Page ![]() |
Einführung
TSFFGraphic: Methoden und Eigenschaften
TSFFGraphic: Methoden und Eigenschaften für Entwickler
TSFFFile: Methoden und Eigenschaften
TSFFFile: Methoden und Eigenschaften für Entwickler
Erzeugte Exception
Nutzungsbedingungen
Download der Unit
History
Die Klassen TSFFGraphic und TSFFFile dienen dem Lesen von Dateien, die im Structured Fax File (SFF) Format vorliegen. Diese werden u.a. von der Software Fritz! von AVM erzeugt.
Es stehen zwei Klassen zur Verfügung.
TSFFGraphic ist von TGraphic abgeleitet und stellt dessen Eigenschaften zur Verfügung. TSFFGraphic enthält nur jeweils eine Seite.
TSFFFile erstellt eine Liste so vielen TSFFGraphic-Instanzen, wie Seiten im Dokument enthalten sind.
Die SFF-Dateien können nur gelesen werden.
Die Unit funktioniert erst ab Delphi 3, spätere Versionen sollten funktionieren, über eine diesbezügliche Rückmeldung würde ich mich freuen.
Eine Realisierung für Delphi 2 ist in Planung.
Methoden
procedure LoadFromStream(Stream: TStream); override; |
Liest eine einzelne SFF-Seite ab der aktuellen Position aus dem Stream. Der Stream muß auf einen DocumentHeader oder einen PageHeader positioniert sein. Anschließend steht der Stream auf dem Anfang der nächsten Seite. Für LoadFromFile bedeutet das, daß nur die erste Seite eingelesen wird. |
procedure SaveToStream(Stream: TStream); override; |
Erzeugt eine ESFF-Exception. |
procedure ReadData(Stream: TStream); override; |
Liest die Länge (LongInt) und anschließend eine Seite aus dem Stream. |
procedure WriteData(Stream: TStream); override; |
Schreibt zuerst die Länge (LongInt) und anschließend eine einzelne Seite in den Stream. Die Methode dient der Speicherung in einem Formular und ist nicht direkt für eine Ausgabe in eine Datei geeignet. |
procedure LoadFromClipboardFormat(AFormat: Word; AData: THandle; APalette: HPALETTE); override; procedure SaveToClipboardFormat(var AFormat: Word; var AData: THandle; var APalette: HPALETTE); override; |
Die Clipboard-Funktionen erzeugen eine ESFF-Exception. |
Eigenschaften
property LineLength:Integer read GetLineLength; |
Liefert die Anzahl Punkte pro Zeile zurück, hier sollte eigentlich nur 1728 auftreten. Dieser Wert wird auch bei Width gesetzt. |
property LineCount:Integer read GetLineCount; |
Liefert die Anzahl der Zeilen auf der Seite zurück. Bei der Standard-Fax-Auflösung (203 dpi / 98 lpi) wird Height auf den doppelten Wert von LineCount gesetzt, ansonsten sind beide Werte identisch. |
property ResolutionHorizontal:Integer read GetResolutionHorizontal; |
Liefert die horizontale Auflösung in dpi zurück, hier sollte nur der Wert 203 auftreten. Wird 0 zurückgegeben, ist die Auflösung nicht bekannt. |
property ResolutionVertical :Integer read GetResolutionVertical ; |
Liefert die vertikale Auflösung in lpi zurück, Standard ist 98 lpi, bei hoher Auflösung 196 lpi. Wird 0 zurückgegeben, ist die Auflösung nicht bekannt. |
procedure Decompress; |
Hiermit kann die Dekomprimierung der Pixeldaten manuell aufgerufen werden. Dies ist eigentlich nur notwendig, wenn Änderungen an Bitmap rückgängig gemacht werden sollen. |
property Bitmap:TBitmap read GetBitmap; |
Liefert eine TBitmap-Instanz zurück, die die dekomprimierten Daten enthält. Bei Aufruf wird ggf. die Dekomprimierung automatisch ausgeführt. Ist die Seite leer wird Nil zurückgegeben. |
property PageCount:Integer read GetPageCount; |
Gibt die Anzahl der Seiten an, die das Dokument enthält. |
property Filename:String read FFilename write SetFilename; |
Der mit der SFF-Datei verknüpfte Dateiname. Wird dieser geändert, wird die Datei eingelesen. |
property Graphics[AIndex:Integer]:TSFFGraphic read GetGraphics; |
Hierüber können die einzelnen TSFFGraphic-Instanzen für jede Seite abgerufen werden. |
function CreateStream:TStream; virtual; |
Hiermit kann die Art des Streams bestimmt werden, der zum Einlesen benutzt werden soll. Der Standard-Stream ist ein TFileStream. |
ESFF = class(Exception); |
ESFF ist die Exception-Klasse für beide Klassen. |
Copyright © 2000, Peter Haas
Die Benutzung und Modifikation im privaten Bereich ist ohne Einschränkung.
Bei Änderungen und Erweiterungen ist der Author an den Ergebnissen interessiert.
Die Benutzung in kommerzieller Software ist nur nach Genehmigung durch den Autor gestattet.
Weitergabe dieses Quelltextes nur in vollständiger und unveränderter Form mit allen Dateien.
Hier kann man sich die Unit downloaden (22 kByte). Zusätzlich zur Unit ist noch eine einfache Application enthalten, um die Anwendung der Unit zu demonstrieren
Über einen Erfahrungsaustausch wäre ich erfreut. Bitte mailen Sie mir.
2000-02-06 | - Version 1.0 (beta) - erste Veröffentlichung |
2000-02-11 | - Version 1.01 (beta) - Versuch, die Unit auf Delphi 2-Bitmaps umzustellen (SFF.pas) - Leerzeilen wurden schwarz ausgegeben, Status: beseitigt (SFF.pas) - Einfügen von zusätzlichen MakeUp-Codes für Zeilen>1728 (MHTools.pas) - Demo erweitert (Main.pas) |
2000-06-06 | - Version 1.02 - SFF.pas basiert auf Version 1.0 - Leerzeilen wurden schwarz ausgegeben, Status: beseitigt (SFF.pas) - MHTools basiert auf 1.01 - Demo basiert auf 1.01 |