jderf
Messages postés189Date d'inscriptionmercredi 29 décembre 2004StatutMembreDernière intervention 2 octobre 2014
-
24 déc. 2009 à 12:05
jderf
Messages postés189Date d'inscriptionmercredi 29 décembre 2004StatutMembreDernière intervention 2 octobre 2014
-
27 déc. 2009 à 11:45
Bonjour,
Je ne comprend pas pourquoi la property OnMouseEnter n'est pas accesible dans le class TbitBtn alors qu'elle hérite de TControls.
J'ai trouvé des bouts de code qui surcharge la class Tbitbtn afin d'ajouter les évenements OnMouseEnter et OnMouseLeave. Mais cela me chagrine car dans la doc VCL, ci-dessous, la property est déclarée avec la visibilité protected donc visible par les class enfant !?
Simplement parce que TBitBtn hérite de TButton qui lui même n'admet pas cet évènement, qui lui même hérite de TButtonControl qui lui même n'admet pas cet évènement, qui lui même hérite de TWinControl qui lui même n'admet pas cet évènement.
Pour répondre clairement à ta question :
Protected signifie que cet évènement est accessible dans les classes enfants. Ceci dit accessible n'induit pas obligatoirement qu'il est déclaré dans ces dernières. Ainsi cet évènement est accessible depuis la classe TWinControl mais non déclaré : Bilan tu es obligé de surcharger la classe TBitBtn pour ajouter ces 2 évènements .
jderf
Messages postés189Date d'inscriptionmercredi 29 décembre 2004StatutMembreDernière intervention 2 octobre 20141 27 déc. 2009 à 10:43
Bonjour,
Merci pour vos réponses. Y'a visiblement un truc qui m'a échappé sur l'héritage. Pour moi une méthode déclarée protected dans une class parent était obligatoirement accessible dans toutes les class enfants.