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:
Malheureusement, la fonction 'GetClass' ne fonctionne qu'avec des classes enregistrées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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))); }
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:
Ceci est faux, puisque __classid prend en paramettre un 'class type', et non pas un 'class name'.To obtain an unregistered class from a class name, use the __classid routine
D'avance merci pour votre aide
Cordialement
Benjamin
Partager