Bonjour,
j'ai réalisé un composant dérivant de TCustomControl.
Pourquoi ce choix ?
car mon composant intégre un second composant, un TTntLabel, pour pouvoir afficher des caractère unicode.
Voici le composant (voir 1er pièce jointes)
jusque là tout va bien.
Mais j'ai voulu mettre mon composant sur un TImage, (voir 2ème pièces jointes), et là j'ai vu que le composant n'avait pas un fond transparent.
J'ai alors cherché une solution, sur le forum et j'en ai trouvé une, la voici
je l'ai donc mise en oeuvre et j'ai obtenu le résultat de la 3ème pièces jointes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void __fastcall TCellule::CreateParams(TCreateParams &Params){ TCustomControl::CreateParams(Params); Params.ExStyle = Params.ExStyle | WS_EX_TRANSPARENT; }
Ce résultat me convenait jusqu'à ce que je souhaite mettre un tlabel par dessus mon composant.
et là impossible de le mettre par dessus.
j'ai donc chercher un peu partout sur le net, et j'ai trouvé que le fait de mettre le paramètre WS_EX_TRANSPARENT, signifer que mon composant était déssiné en dernier pour que le fond soit statique au moment du dessin de mon composant.
Donc si je suis le raisonnement , comme mon composant et dessiné en dernier alors, je ne pourrai jamais mettre un composant au dessu du mien![]()
Donc j'aimerai dans un premier temps savoir si j'utilise la bonne méthode pour rendre mon composant transparent.
et dans un second temps, si mon raisonnement est malheuresement correct en ce qui concerne la superposition des composants :/, et si je me trompe, si quelqu'un avait une solution a me proposé.
Merci d'avance pour votre aide
Partager