DesignIntf.RegisterPropertyEditor

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

procedure RegisterPropertyEditor(PropertyType: PTypeInfo; ComponentClass: TClass; const PropertyName: string; EditorClass: TPropertyEditorClass);

C++

extern DELPHI_PACKAGE void __fastcall RegisterPropertyEditor(System::Typinfo::PTypeInfo PropertyType, System::TClass ComponentClass, const System::UnicodeString PropertyName, TPropertyEditorClass EditorClass);

Propriétés

Type Visibilité  Source Unité  Parent
procedure
function
public
DesignIntf.pas
DesignIntf.hpp
DesignIntf DesignIntf


Description

Permet à un composant d'afficher un éditeur de propriété personnalisé depuis l'inspecteur d'objets.

Appelez RegisterPropertyEditor pour associer la classe éditeur de propriétés spécifiée par le paramètre EditorClass au type de propriété spécifié par le paramètre PropertyType.

Lorsqu'un composant est sélectionné, l'inspecteur d'objets crée un éditeur de propriétés pour chaque propriété du composant, basé sur le type de la propriété. Par exemple, si la propriété est de type Integer, l'éditeur d'entiers sera créé (par défaut, il s'agit de TIntegerProperty). La plupart des propriétés n'ont pas besoin d'éditeurs spécialisés. Par exemple, si la propriété est de type ordinal, l'éditeur par défaut limitera son étendue à celle du sous-type.

Si un type de propriété ne peut être édité par l'éditeur par défaut ou par les éditeurs existants, utilisez RegisterPropertyEditor pour lui associer un éditeur personnalisé. Ceci vient en général du fait que la propriété est un objet.

Lorsque vous recensez un éditeur de propriétés, donnez à PropertyType la valeur du pointeur d'informations de type. Dans Delphi, le pointeur d'informations de type est renvoyé par la fonction TypeInfo. Par exemple, TypeInfo(TPropertyObject). Dans C++, si le type de propriété est une classe, vous pouvez utiliser la macro __typeinfo pour obtenir ce pointeur. Pour les autres types, vous pouvez obtenir le pointeur des informations de type à partir d'une propriété publiée de même type. Par exemple :

PTypeInfo TypeInfo;
PPropInfo PropInfo =GetPropInfo(__typeinfo(TForm), "BorderStyle");
if (PropInfo)
TypeInfo = *(PropInfo->PropType);

Définissez le paramètre ComponentClass pour qu'il limite l'éditeur de propriétés à une classe composant et ses descendants. Si ComponentClass est à nil (Delphi) ou NULL (C++), l'éditeur de propriétés est associé au type de propriété pour tous les composants.

Définissez le paramètre PropertyName pour qu'il limite l'éditeur de propriétés aux propriétés ayant un nom précis et le type spécifié. Si PropertyName est une chaîne vide, l'éditeur de propriétés est associé à toutes les propriétés du type spécifié.

Mettez le paramètre EditorClass à la classe de l'éditeur de propriétés qui doit être affiché lorsque la propriété est sélectionnée dans l'inspecteur d'objets. Cette classe doit être un descendant de TBasePropertyEditor qui implémente l'interface IProperty.

Voir aussi

Exemples de code