Type de classe non enregistrée à partir de son nom
Bonjour,
Je souhaiterai écrire une fonction qui, à partir d'un handle d'un composant, me retourne un booleen me spécifiant si ce composant hérite d'un TEdit ou non.
Voici ce que je fais:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
#define CLASSNAMEMAXSIZE 256
bool InheritsFromTEdit(HANDLE hWnd)
{
if (hWnd == NULL)
return false;
//Get class name from the window handle
char CrtClassName[CLASSNAMEMAXSIZE];
if (GetClassName(hWnd,CrtClassName,CLASSNAMEMAXSIZE) <= 0)
return false;
//Get the class-reference type
TMetaClass *CrtClass = GetClass(CrtClassName);
if (CrtClass == NULL)
return false;
return (Application->InheritsFrom(CrtClass,__classid(TEdit)));
} |
Malheureusement, la fonction 'GetClass' ne fonctionne qu'avec des classes enregistrées.
Connaissez-vous une fonction équivalente, fonctionnant aussi avec des classes non-enregistrées?
Sinon, petite remarque, dans l'aide borland de la fonction 'GetClass' on peut lire:
Citation:
To obtain an unregistered class from a class name, use the __classid routine
Ceci est faux, puisque __classid prend en paramettre un 'class type', et non pas un 'class name'.
D'avance merci pour votre aide
Cordialement
Benjamin