System.Classes.TWriter.DefineBinaryProperty

De RAD Studio API Documentation
Aller à : navigation, rechercher

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);

Propriétés

Type Visibilité  Source Unité  Parent
procedure
function
public
System.Classes.pas
System.Classes.hpp
System.Classes TWriter

Description

Traite les données non formatées comme si elles étaient une propriété publiée et les écrit directement dans un flux mémoire.

La méthode DefineBinaryProperty est appelée de manière interne par la méthode DefineProperties pour traiter un objet ayant des données à stocker. DefineProperties attend comme paramètre un objet filer générique.

Pour écrire des données binaires, DefineProperties attend un objet TWriter et appelle la méthode DefineBinaryProperty de l'objet écrivain. Ensuite, si la propriété HasData a la valeur true, DefineBinaryProperty écrit le nom de la propriété et ses données. Sinon, elle ne fait rien.

Le paramètre Name spécifie le nom de la "simili" propriété à écrire dans le flux. Une "simili" propriété est une propriété non publiée qui n'existe donc que dans le code de la méthode DefineBinaryProperty. Les propriétés Top et Left d'un composant non visuel sont des exemples de "simili" propriété. Elles sont également appelées "propriétés définies" ou "propriétés à définition personnalisée".

Le type TStreamProc est le type des paramètres ReadData et WriteData. C'est un type de pointeur de méthode désignant une procédure (définie dans l'objet composant) lisant ou écrivant directement la représentation binaire des données de l'objet dans le flux spécifié par le paramètre Stream. Pour TWriter, le paramètre ReadData est ignoré.

Le paramètre HasData détermine à l'exécution si la "simili" propriété contient des données à écrire.

Les propriétés définies binaires sont peu fréquentes. Les objets persistants stockant des graphiques comme données binaires constituent l'exemple le plus courant d'utilisation des objets filer pour lire ou écrire ce type de données. Les objets plus courants utilisent la méthode DefineProperty. La différence entre DefineBinaryProperty et DefineProperty, réside dans le fait qu'avec DefineBinaryProperty, le composant lit ou écrit directement la propriété binaire dans ou depuis un flux mémoire au lieu de passer par un objet filer.

Remarque :  Les objets manipulables par des flux qui dérivent de TPersistent héritent de la méthode DefineProperties. Cependant, avant TComponent, DefineProperties ne fait rien. C'est donc la méthode DefineProperties de TComponent qui appelle la méthode DefineBinaryProperty d'un objet écrivain afin d'écrire des données binaires.

Voir aussi