Téléchargé 4 fois
Vote des utilisateurs
0
0
Détails
Licence : Non renseignée
Mise en ligne le 10 novembre 2010
Plate-forme :
Windows
Langue : Français
Référencé dans
Navigation
Un exemple d'éditeur de propriété : un bouton avec caption extraite d'une base de donnée
Un exemple d'éditeur de propriété : un bouton avec caption extraite d'une base de donnée
Installation:
Si tout se passe bien, vous devez le nouveau composant dans l'onglet DVP.
Quelques explications ...
Regardez bien le fichier DVPDBButtonDEReg.cpp, class PACKAGE TDataFieldsProperty : public TStringProperty.
C'est une classe générique qui peut être utilisée chaque fois que vous utilisez une property de type AnsiString qui pointe sur une liste de champs d'une table.
Vous aurez peut être à modifier la méthode GetAttributes() qui doit fournir à l'éditeur de propriété de builder la liste des champs possibles (par exemple pour limiter à certains champs).
Ensuite pour chaque propriété de type AnsiString, il faut enregistrer l'éditeur de propriété.
Pour chaque champ, créer une fonction sur le modèle suivant :
PTypeInfo FieldNameTypeInfo(void)
{
PPTypeInfo Temp;
//
// Pour simplifier l'accès à la propriété AinsiString [FieldName]
//
// __typeinfo(le_nom_de_la_class_de_votre_composant)
//
// "Fieldname" Le nom de votre propriété dans __published
//
Temp = GetPropInfo(__typeinfo(TDVPDBButton), "FieldName")->PropType;
assert(Temp != NULL);
return *Temp;
}
Puis enregistrer votre éditeur de propriété :
void __fastcall PACKAGE Register()
{
TComponentClass classes[1] = {__classid(TDVPDBButton)};
//
// Enregistrement du composant
//
RegisterComponents("DVP-DVSoft", classes, 0);
//
// Enregistrement de l'editeur de property pour les noms de champs
// de la property [FieldName] du composant [TDVPDBButton]
//
RegisterPropertyEditor(FieldNameTypeInfo(),
__classid(TDVPDBButton),
"FieldName",
__classid(TDataFieldsProperty));
}
N'oubliez pas d'ajouter le paquet designide.bpi et MonComposantRT.bpi au projet et de sélectionner dans les options [Seulement en conception].
Votre paquet MonComposantRT, lui, doit avoir dans les options [Seulement en execution].
- Dézipper le fichier
- Ouvrir DVPDBButtonRT et compiler
- Ouvrir DVPDBButtonDE, compiler et installer
Si tout se passe bien, vous devez le nouveau composant dans l'onglet DVP.
Quelques explications ...
Regardez bien le fichier DVPDBButtonDEReg.cpp, class PACKAGE TDataFieldsProperty : public TStringProperty.
C'est une classe générique qui peut être utilisée chaque fois que vous utilisez une property de type AnsiString qui pointe sur une liste de champs d'une table.
Vous aurez peut être à modifier la méthode GetAttributes() qui doit fournir à l'éditeur de propriété de builder la liste des champs possibles (par exemple pour limiter à certains champs).
Ensuite pour chaque propriété de type AnsiString, il faut enregistrer l'éditeur de propriété.
Pour chaque champ, créer une fonction sur le modèle suivant :
PTypeInfo FieldNameTypeInfo(void)
{
PPTypeInfo Temp;
//
// Pour simplifier l'accès à la propriété AinsiString [FieldName]
//
// __typeinfo(le_nom_de_la_class_de_votre_composant)
//
// "Fieldname" Le nom de votre propriété dans __published
//
Temp = GetPropInfo(__typeinfo(TDVPDBButton), "FieldName")->PropType;
assert(Temp != NULL);
return *Temp;
}
Puis enregistrer votre éditeur de propriété :
void __fastcall PACKAGE Register()
{
TComponentClass classes[1] = {__classid(TDVPDBButton)};
//
// Enregistrement du composant
//
RegisterComponents("DVP-DVSoft", classes, 0);
//
// Enregistrement de l'editeur de property pour les noms de champs
// de la property [FieldName] du composant [TDVPDBButton]
//
RegisterPropertyEditor(FieldNameTypeInfo(),
__classid(TDVPDBButton),
"FieldName",
__classid(TDataFieldsProperty));
}
N'oubliez pas d'ajouter le paquet designide.bpi et MonComposantRT.bpi au projet et de sélectionner dans les options [Seulement en conception].
Votre paquet MonComposantRT, lui, doit avoir dans les options [Seulement en execution].
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.