C'est Mauricio qui a commencé ! Un dégradé sur un panel ! Et pourquoi pas autre chose ? En reprenant le principe du composant TGraphicGauge que je vous avais soumis, voici le TBitmapPanel. Ce composant derive de TCustomPanel comme TPanel, J'y ai juste ajouté une propriété bitmap et les procédures pour la gérer. J'ai aussi surchargé la méthode Paint pour pouvoir affecter le bitmap à la propiété Bitmap de la brosse du canvas du panel avant l'appel à la procédure Fillrect.
Conclusion :
La démo n'a pas besoin d'être éxécutée, le bitmap du BitmapPanel a été préchargé en mode conception par mes soins. Joli, non ?
Mauricio, imagine que le bitmap soit un dégradé .... Pour un panel de taille fixe ça marche très bien !
Note pour les très débutants, un composant ça s'installe ! Composant>Installer un composant>etc...
30 mars 2005 à 18:11
Au fait, la transparence sera surtout utile pour TbmpPaintbox ! Mais, on pourra faire de même avec un TBmpPanel (pour ceux qui utilisent XPManifest et l' option parentBackground) et même, sans l' attribuer d' image, rendre le panel transparent (qui n' a jamais voulu que son panel soit transparent) même sous Win95/98 !!!
30 mars 2005 à 18:06
Ou alors si tu mets ton compo sur mon compo de degradé par ex., je voudrais définir une couleur de transparence!
Voilà comment faire :
BmpPanel1.Bmp.Transparent := true;
BmpPanel1.Bmp.TransparentColor := clFuchsia;
dgradPanel1.Canvas.Draw(10, 10, BmpPanel1.Bmp);
ou alors dgradPanel1.Canvas.StretchDraw(classes.Rect(10, 10, 100, 100), BmpPanel1.Bmp);
Donc Kenavo, je crois que tu vas devoir faire autrement que brush.bitmap dans le cas où tu voudrais faire de la transparence.
A surveiller donc la prochaine version de mon Pack :)
30 mars 2005 à 17:58
Je viens de charger ton pack complet, je n'avais que le début (dgradPanel et dgradPaintBox).
Tu veux faire des transparences où ? Dans ton BmpPanel ?
Ken@vo
30 mars 2005 à 16:34
J' utilise BrushCopy pour rendre transparent une couleur au choix de l' utilisateur. Mais, celle-ci est remplacée par la couleur du brush alors que je voulais qu' elle soit vraiment transparente(Themes oblige); t' as une idée toi? J' ai essayé copyRect (en changeant copyMode) mais ce satané copyMode est dûr de dompter !!!
30 mars 2005 à 15:44
On ne peut pas cacher une propriété héritée (vois les dernières lignes dans l'aide sur "Visibilité des membres de classe". Pour ton TdgradPanel, il aurait fallu partir de TCustomPanel et non pas de Panel (comme je l'ai fait ici), et pour le TdgradPaintbox, partir de TGraphicControl. Tu peux alors choisir les propriétés que tu désires rendre visibles.
Ken@vo
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.