DesignIntf.RegisterPropertyEditor
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.