TSKINBUTTON : BOUTON PRÉSENTANT DIVERS ASPECTS SELON SON ÉTAT
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 2006
-
13 juin 2002 à 00:47
cs_grandvizir
Messages postés1106Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention 3 septembre 2006
-
20 juil. 2004 à 21:35
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_grandvizir
Messages postés1106Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention 3 septembre 200622 20 juil. 2004 à 21:35
Pour le focus, il faut faire descendre de TCustomControl et non de TWinControl qui n'a aucun Canvas (ça serait embêtant). Ceci ne suffit pas, il faut publier les propriétés Enabled, Visible, TabOrder et TabStop.
Ensuite, tout se gère OnPaint avec l'appel: if Focused then DessineMoiUnBeauFocus;
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 13 juin 2002 à 00:47
Pour le focus, il n'y a pas grand chose à faire, mise à part de descendre de TWinControl et de gérer le Focused. Je me souviens qu'il y a une ou deux autres petites choses à gérer mais je ne sais plus les-quelles
Sinon tu as raison, le focus n'est pas capital tant que l'on utilise pas le clavier. De plus les TGraphicControl utilisent moins de ressources que les TWinControl car ils n'ont pas de Handle de fenêtre.
cs_Nebula
Messages postés787Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention 7 juin 20072 13 juin 2002 à 00:00
en effet delphi m'avait signalé un avertissement pou le SetAutoSize ("warning: SetAutoSize method hides parent's method" si ma mémoire est bonne) mais je ne savais pas trop comment passer outre, j'appliquerais ta solution pour une future mise à jour ;o)
j'ai fait ce composant pour la version 2 d'un de mes programmes (celui de mon site en fait), et le focus n'est pas obligatoire même s'il serait appréciable... je suppose qu'il faut rajouter un "if Focused" dans la méthode Paint, et dessiner ainsi l'effet du focus sur le composant ?
en tout cas merci pour ton encouragement ;o)
cs_Nono40
Messages postés962Date d'inscriptionmercredi 3 avril 2002StatutMembreDernière intervention12 septembre 20062 12 juin 2002 à 23:52
Et pour les félicitations il faut aussi être indulgent ?
Je n'ai que peu de remarques :
AutoSize existe déjà dans la classe de base TGraphicControl. Il suffit donc de la publier et de surcharger le SetAutosize :
Procedure SetAutosize (Value: Boolean );Override;
Juste pour effectuer un Invalidate en cas de changement.
Bravo pour cet exellent début...
P.S. : la prochaine version devrait descendre de TWinControl pour avoir la possiblité de détenir le focus.
20 juil. 2004 à 21:35
Ensuite, tout se gère OnPaint avec l'appel: if Focused then DessineMoiUnBeauFocus;
13 juin 2002 à 00:47
Sinon tu as raison, le focus n'est pas capital tant que l'on utilise pas le clavier. De plus les TGraphicControl utilisent moins de ressources que les TWinControl car ils n'ont pas de Handle de fenêtre.
13 juin 2002 à 00:00
j'ai fait ce composant pour la version 2 d'un de mes programmes (celui de mon site en fait), et le focus n'est pas obligatoire même s'il serait appréciable... je suppose qu'il faut rajouter un "if Focused" dans la méthode Paint, et dessiner ainsi l'effet du focus sur le composant ?
en tout cas merci pour ton encouragement ;o)
12 juin 2002 à 23:52
Je n'ai que peu de remarques :
AutoSize existe déjà dans la classe de base TGraphicControl. Il suffit donc de la publier et de surcharger le SetAutosize :
Procedure SetAutosize (Value: Boolean );Override;
Juste pour effectuer un Invalidate en cas de changement.
Bravo pour cet exellent début...
P.S. : la prochaine version devrait descendre de TWinControl pour avoir la possiblité de détenir le focus.