IMAGE EN FOND DE PANEL

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 25 mars 2005 à 22:57
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 - 30 mars 2005 à 18:11
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/30328-image-en-fond-de-panel

cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
30 mars 2005 à 18:11
Si j' ai bien compris, tu connaissais pas Empty c' est ça?
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 !!!
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
30 mars 2005 à 18:06
C' est à cause des themes qui font de zolis dégradés !!!
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 :)
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
30 mars 2005 à 17:58
Empty ! On en apprend tous les jour ! Merci Mauricio !
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
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
30 mars 2005 à 16:34
Ok, merci pour ces explications.
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 !!!
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
30 mars 2005 à 15:44
Ah ben oui ! Deux fois ! Une de trop ! La première manque de portée et n'a plus son utilité. Allez zou, correction !

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
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
30 mars 2005 à 14:46
Pourquoi dans le paint tu fais au debut:

if (fBitmap.Width > 0) and (Bitmap.Height > 0) then
Brush.Bitmap := fBitmap;

with Canvas do
begin
Brush.Color := Color;
//Si les dimensions du bitmap ne sont pas nulles
// on affecte celui-ci à la brosse
if (fBitmap.Width > 0) and (Bitmap.Height > 0) then
Brush.Bitmap := fBitmap;

Comme tu peux le voir, j' ai fait un compo dans le même genre (cf source pack compo). Ta méthode est bien plus rapide (grâce à brush.bitmap) même si j' essaye de rendre le Panel transparent pour une couleur lorsque l' on utilise les thèmes de Windows ...
Au fait, comment peut-on cacher de l' object Inspector une propriété héritée que l' on a pas besoin ???
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
29 mars 2005 à 08:57
ManChester, tu trouve que j'ai pas assez l'air fondu comme ça ?!...

D'après l'aide :
La propriété Bitmap désigne un objet TBitmap contenant une image bitmap. Si Bitmap n'est pas vide, l'image bitmap (et non la propriété Style) définit le motif du pinceau. Si la taille de l'image est supérieure à huit pixels par huit pixels, seule la zone huit-sur-huit du coin supérieur gauche est utilisée.

Mais ça marche très bien avec un bitmap de plus de huit pixels de coté. Il semblerait que l'aide n'ait pas été mise à jour depuis Delphi 1 où cette limite de 8 x 8 pixels est effective.
cs_ManChesTer Messages postés 374 Date d'inscription vendredi 20 octobre 2000 Statut Modérateur Dernière intervention 15 janvier 2021
26 mars 2005 à 15:12
Oui, excellent, astuce dèja conue mais bon.... excellent quand meme.

Tu nous fais le meme avec effet de "fondu" et transparance en temps réel ? (joke)

Bon Coding....

ManChesTer.
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
25 mars 2005 à 22:57
Excellent, tout simplement excellent.
Bravo Kenavo.
Rejoignez-nous