System.Classes.TWriter.DefineBinaryProperty

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

procedure DefineBinaryProperty(const Name: string;  ReadData, WriteData: TStreamProc; HasData: Boolean); override;

C++

virtual void __fastcall DefineBinaryProperty(const System::UnicodeString Name, TStreamProc ReadData, TStreamProc WriteData, bool HasData);

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
procedure
function
public
System.Classes.pas
System.Classes.hpp
System.Classes TWriter

Beschreibung

Verarbeitet unformatierte Daten wie eine published Eigenschaft und schreibt sie direkt in einen Speicher-Stream.

DefineBinaryProperty wird intern von der Methode DefineProperties eines Objekts aufgerufen, das Daten enthält, die gespeichert werden müssen. DefineProperties verwendet ein generisches Filer-Objekt als Parameter.

Wenn binäre Daten geschrieben werden sollen, erhält DefineProperty ein TWriter-Objekt als Parameter und ruft dann die Methode DefineBinaryProperty auf. Wenn der Parameter HasData true enthält, schreibt DefineBinaryProperty den Namen und die Daten der Eigenschaft. Andernfalls geschieht nichts.

Im Parameter Name wird der Name der benutzerdefinierten Eigenschaft angegeben, die in den Stream geschrieben werden soll. Diese Eigenschaft wurde nicht als public deklariert und existiert nur im Quelltext der Methode DefineBinaryProperty. Beispiele für Eigenschaften dieses Typs sind die Eigenschaften Top und Left einer nichtvisuellen Komponente. Sie werden auch als benutzerdefinierte Eigenschaften bezeichnet.

Der TStreamProc-Typ ist der Typ der Parameter ReadData und WriteData. Es handelt sich um den Methodenzeiger, der auf eine im Speicherobjekt definierte Prozedur zeigt, die eine binäre Repräsentation der Objektdaten direkt in den oder aus dem im Parameter TStream angegebenen Stream schreibt oder liest. Für TWriter-Objekte wird der Parameter ReadData nicht berücksichtigt.

Der Parameter HasData bestimmt zur Laufzeit, ob die Eigenschaft Daten enthält, die gespeichert (geschrieben) werden müssen.

Definierte binäre Eigenschaften sind relativ selten. Die häufigste Verwendung von Filer-Objekten zum Speichern und Abrufen von Daten sind dauerhafte Objekte, die Grafiken als binäre Daten speichern. Gängige Objekte verwenden die Methode DefineProperty. Der Unterschied zwischen DefineBinaryProperty und DefineProperty besteht darin, dass bei DefineBinaryProperty die Komponente die binären Daten direkt in ein oder aus einem Speicher-Stream schreibt bzw. liest, anstatt ein Filer-Objekt zu verwenden.

Anmerkung:  Von TPersistent abgeleitete Objekte, die in einen Stream gestellt werden können, erben die Methode DefineProperty. Die Methode DefineProperty des Komponentenobjekts ruft die Methode DefineBinaryProperty des Writer-Objekts auf, wenn binäre Daten geschrieben werden.

Siehe auch