IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants VCL Delphi Discussion :

Dégradé sur un DBGrid


Sujet :

Composants VCL Delphi

  1. #1
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut Dégradé sur un DBGrid
    Il y a-t-il quelqu'un qui sait dégrader les Fixedrow ?
    On a le COLOR des fixedrows, mais rien d'autre.

    J'ai essayé la JcvUltimGrid, il y a un DrawcolumnTitle mais il n'accepte pas le degrader la dessus.

    Quelque à déjà réussi à le faire ?

    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Bonjour,

    Je n'ai jamais utilisé DBGrid, mais pour le cas où le DBGrid possèderait un Canvas accessible voiçi un bout de code qui réalise un dégradé sur un canvas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Procedure Degrader( CanvasCible : TCanvas; Dim : TRect; CoulDeb,CoulFin : Tcolor; Vertical : boolean);
    //        Param CanvasCible = Canvas cible
    //        Param Dim = Rectangle-Dimensions du canvas-cible
    //        Param CoulDeb,CoulFin = couleurs de début et de fin du dégradé
    //        Param Vertical : True pour dégradé vertical sinon dégradé horizontal.
    type      TRGB = record R,G,B : integer; end;
    var       Frange : TRect;  // Frange rectangulaire pour tracé couleur courante variable
              i     : Integer; // Compteur pour parcourir la hauteur du canvas
              cDeb  : TRGB;    // valeurs RGB de la couleur de Deb
              cDeg  : TRGB;    // valeurs RGB de la couleur courante
              eD_F  : TRGB;    // écarts de RGB entre couleurs de Deb et de Fin
     
    begin    // valeurs RGB de la couleur de Deb
             cDeb.R := GetRValue(ColorToRGB(CoulDeb));
             cDeb.G := GetGValue(ColorToRGB(CoulDeb));
             cDeb.B := GetBValue(ColorToRGB(CoulDeb));
             // écarts RGB entre couleurs de Deb et de Fin
             eD_F.R := GetRValue(ColorToRGB(CoulFin )) - cDeb.R;
             eD_F.G := GetgValue(ColorToRGB(CoulFin )) - cDeb.G;
             eD_F.B := GetbValue(ColorToRGB(CoulFin )) - cDeb.B;
             // Initialisation des dimensions de la Frange de couleur
             Frange.Left := Dim.Left;
             Frange.Right:= Dim.Right - Dim.Left;
             // Boucle de remplissage en dégradé du canvas
             with CanvasCible do
             begin for i:= 0 to 255 do
                   begin // Dimensions de la Frange
                         if Vertical = true then
                         begin Frange.Left := Dim.Left;
                               Frange.Right:= Dim.Right - Dim.Left;
                               Frange.Top  := MulDiv(i, Dim.Bottom - Dim.top, 256);
                               Frange.Bottom := MulDiv(i+1, Dim.Bottom - Dim.top, 256);
                         end else
                         begin Frange.Top:=Dim.top;
                               Frange.Bottom:= Dim.Bottom - Dim.top;
                               Frange.left  := MulDiv(i, Dim.Right - Dim.Left, 256);
                               Frange.right := MulDiv(i+1 , Dim.Right - Dim.Left, 256);
                         end;
                         // couleur courante dégradée
                         cDeg.R := (cDeb.R + MulDiv(i, eD_F.R, 255)) mod 256;
                         cDeg.G := (cDeb.G + MulDiv(i, eD_F.G, 255)) mod 256;
                         cDeg.B := (cDeb.B + MulDiv(i, eD_F.B, 255)) mod 256;
                         // Tracé sur canvas
                         Brush.color:=RGB(cDeg.R, cDeg.G, cDeg.B);
                         FillRect(Frange);
                   end;
             end;
    end;
    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  3. #3
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    En fait j'utilise déjà cet procedure Degrade dans mon code.

    Mais je n'arrive pas à atteindre les titre de colonne.

    tu vois ?

Discussions similaires

  1. Simuler un appui sur un DBGrid
    Par maw dans le forum C++Builder
    Réponses: 9
    Dernier message: 25/10/2005, 09h45
  2. Problème avec OnDrawColumnCell sur un DBGrid
    Par n1portki dans le forum Composants VCL
    Réponses: 3
    Dernier message: 23/09/2005, 04h18
  3. Faire un filtre sur un DBGRID
    Par richard038 dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/08/2005, 17h18
  4. Comportement anormal de la tabulation sur une DBGrid
    Par fredfred dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/05/2005, 13h23
  5. ecrire sur un dbgrid ??
    Par nil dans le forum Bases de données
    Réponses: 8
    Dernier message: 21/04/2004, 22h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo