Comment créer un bouton non rectangulaire transparent avec Delphi?Comment créer un bouton non-rectangulaire avec Delphi?
Répondre
Fondamentalement, vous utilisez SetWindowRgn pour définir la forme de votre bouton/contrôle/fenêtre. Voir here pour un exemple.
Ou si cela ne vous dérange pas que votre bouton ne puisse pas être sélectionné par le clavier, vous pouvez également utiliser un TImage et utiliser l'événement OnMouseUp.
Ou trouvez un bouton tiers qui fait déjà ce que vous voulez sur Torry. Le composant
Raize Components a un composant appelé TRzShapeButton, mais il existe probablement aussi des alternatives libres.
+1 - Et vous obtenez tellement d'autres composants qui sont très matures et viennent avec un soutien fantastique. Une bibliothèque très bien pensée. – skamradt
Vous ne pouvez utiliser SetWindowRgn que si cela ne vous gêne pas d'avoir l'air bizarre - les bits qui ne sont pas dans la région seront simplement supprimés. Votre meilleur pari provient probablement de TCustomTransparentControl, mais vous devrez alors faire de la peinture personnalisée. Je suppose que cette peinture personnalisée était ce que vous attendiez tout le temps?
Si c'est vraiment si urgent, vous ne devriez pas essayer de le créer vous-même. Cela vous prendra trop de temps pour comprendre les bases. Vous feriez mieux de trouver l'une des douzaines de boutons non rectangulaires déjà faits. Essayez Torry. –