Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

IMAGE EN FOND DE PANEL


Information sur la source

Catégorie :Composants Niveau : Débutant Date de création : 25/03/2005 Date de mise à jour : 30/03/2005 15:50:12 Vu / téléchargé: 7 277 / 1 036

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
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...
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

30 mars 2005 15:50:12 :
Correction "Mauricio-050330" ligne inutile (voir commentaires)

Commentaires et avis

signaler à un administrateur
Commentaire de Delphiprog le 25/03/2005 22:57:30 administrateur CS

Excellent, tout simplement excellent.
Bravo Kenavo.

signaler à un administrateur
Commentaire de ManChesTer le 26/03/2005 15:12:38 administrateur CS

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.

signaler à un administrateur
Commentaire de Kenavo le 29/03/2005 08:57:40

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.

signaler à un administrateur
Commentaire de MAURICIO le 30/03/2005 14:46:51

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 ???

signaler à un administrateur
Commentaire de Kenavo le 30/03/2005 15:44:40

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

signaler à un administrateur
Commentaire de MAURICIO le 30/03/2005 16:34:42

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 !!!

signaler à un administrateur
Commentaire de ManChesTer le 30/03/2005 17:09:57 administrateur CS

MAURICIO,

Utilise draw (voir mon source http://www.delphifr.com/code.aspx?id=29225 )
Qui illustre l'astuce ;o)

Bon Coding....

ManChesTer.

signaler à un administrateur
Commentaire de Kenavo le 30/03/2005 17:58:31

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

signaler à un administrateur
Commentaire de MAURICIO le 30/03/2005 18:06:22

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 :)

signaler à un administrateur
Commentaire de MAURICIO le 30/03/2005 18:11:19

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 !!!

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,125 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.