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 :

Alternance de couleur dans un DBGrid


Sujet :

Composants VCL Delphi

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Par défaut Alternance de couleur dans un DBGrid
    Bonjour,

    je sais que ce sujet revient très souvent et j'ai trouvé de nombreux tutoriels mais mon problème est le suivant: je ne veux pas alterner deux couleurs à chaque ligne mais uniquement lorsque la valeur d'un des champs change.

    Par exemple, le champ NUM_VENTE: s'il vaut :
    001 on colorie en gris
    004 on change en blanc
    024 on colorie en gris
    XXX on change en blanc
    etc...

    La valeur en elle-même n'a pas d'importance, c'est seulement le fait qu'elle diffère de l'enregistrement précédent qui entraine le changement de couleur. De fait on peut avoir une plusieurs lignes grises ou blanche à la suite.

    Merci pour toute aide...

  2. #2
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    Salut

    Le principe reste le même : Dans le DrawCell de to composant, tu choisis la couleur en fonction de la valeur de la case, et non plus en fonction du numéro de ligne, comme c'est le cas quand on alterne les couleurs a chaque ligne.

    Bonne chance

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 595
    Billets dans le blog
    65
    Par défaut
    Je ne sais plus si c'est la JVDBGrid (JVCL) ou la SmDBGrid (smcomponent) qui permet de le faire facilement .
    En tout cas ces 2 Biblios de composants gratuites sont a visiter

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Par défaut
    Merci pour vos réponses mais je pense que je n'ai pas été clair dans mes explications et surtout avec l'exemple que je donne.
    mick605: je ne peux pas lier la couleur à une valeur de case car je n'ai que deux couleurs à choisir et les valeurs du champ NUM_VTE sont différentes à chaque vente. De plus leur ordre va varier suivant les critères de recherche de la requête (par ex je peux afficher que les ventes supérieures à 200€, ce qui va donner un résultat complètement différent d'un affichage de toutes les ventes de la journée).
    SergioMaster: je n'ai pas trouvé cette fonction dans SmDBGrid, composant qui reste cependant très complet. Je ne peux pas installer JVDBGrid car je suis sous delphi4.

    Alors voici la solution que j'ai trouvé:
    Dans ma table ventes, j'ai ajouté un champ COULEUR de type booléen. Je défini deux couleurs en variables dans mon application (MCOuleur1 et MCouleur2). J'utilise une procédure de mise à jour de mon Query suivant mes critères de recherche et qui met à jour mon Query:

    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
    procedure TFGestAsso.MiseAJourListeVentes;
    var
     MNum: String;
     MCoul: Boolean;
    begin
     MCoul:=True;
     with QListeEcritures do
     begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT * FROM VENTES');
      SQL.Add('WHERE …');
      Open;
      MNum:=FieldByName('NUM_VTE').AsString;
      While not eof do
      begin
       Edit;
       if FieldByName('NUM_VTE').AsString<>MNum then //Si la valeur du champ change on change de couleur
       begin
        MCoul:=not MCoul;
        MNum:=FieldByName('NUM_VTE').AsString;
       end;
       FieldByName('COULEUR').AsBoolean:=MCoul;
       Next;
      end;
      First;
     end;
    end;
    Ensuite on colorie les lignes dans OnDrawColumnCell:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    begin
     if (DBGrid1.DataSource.DataSet.FieldByName('COULEUR').AsBoolean=True)     then
      dbgrid1.Canvas.Brush.Color:=MCoulLigne1
     else
       dbgrid1.Canvas.Brush.Color:=MCoulLigne2;
     dbgrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
    end;
    Ça fonctionne mais je pense qu'il y a plus simple.

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 595
    Billets dans le blog
    65
    Par défaut
    Non , c'est le plus simple . Même un peu trop car :
    • la couleur de la ligne est sélectionnée n'est pas gérée

    mais je chipote

    PS. Merci d'utiliser les balises Code (#) pour entourer les codes sources

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Par défaut
    Désolé pour les balises code, je n'ai pas l'habitude de poster sur des forums.

    Le problème de cette méthode, c'est que lors de la mise à jour du query, on voit défiler le DBGrid, ce qui est assez agassant.

    Pour y remedier, je rend le DBGrid1 invisible avant la boucle et de nouveau visible après.

  7. #7
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Peut être cela peut-il t'aider....

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 595
    Billets dans le blog
    65
    Par défaut
    Le problème de cette méthode, c'est que lors de la mise à jour du query, on voit défiler le DBGrid
    je rend le DBGrid1 invisible
    Plutôt que de rendre invisible la Grille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    QListeEcritures.DisableControls;
    QListeEcritures.Active:=False;
    ... traitement SQL
    QListeEcritures.Active:=True;
    ... positionnement par exemple
    QListeEcritures.EnableControls;

  9. #9
    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
    Par défaut
    Salut,

    Normalement pour l'alternance des couleurs tu peux utiliser cela :

    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
    procedure TForm1.DBGridDrawColumnCell(Sender: TObject; const Rect: TRect; 
      DataCol: Integer; Column: TColumn; State: TGridDrawState); 
    begin 
      with DBGrid.Canvas do 
      begin 
        if (DataModule.ADOQuery.RecNo mod 2) = 0  // pour alterner les couleur de lignes 
          then Brush.Color := clwhite 
          else Brush.Color := clred; 
     
        if (gdSelected in State) or (gdFocused in State) then // pour avoir la ligne selectionné ou qui a le focus dans une autre couleur 
          begin 
            Brush.Color := clBlue; 
            Font.Style := [fsBold]; 
            font.Color := clWindowText; 
          end; 
      end;  
     
      Column.Grid.DefaultDrawColumnCell(Rect, DataCol, Column, State); 
    end;
    Bye

  10. #10
    Membre Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    Buzz > Si je ne me trompe pas, il ne cherche pas a avoir une alternance a chaque ligne, mais a avoir les lignes qui contiennent la même valeur de la même couleur :
    1   > gris
    1   > gris
    2   > blanc
    3   > gris
    6   > blanc
    6   > blanc
    6   > blanc

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Par défaut
    SergioMaster: merci pour cette solution qui me convient mieux, elle est tout de même plus professionnelle. Par contre je n'ai pas utilisé Active:=False car à ce moment là on ne peut plus parcourir les données.

    mick605>> Tu as tout compris... et l'exemple que tu donnes est plus parlant que le mien.

  12. #12
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 595
    Billets dans le blog
    65
    Par défaut
    je crois qu'il y a mal entendu
    le active:=false n'est ni plus ni moins que l'équivalent d'un close ce que tu dois bien faire pour changer le texte SQL si je reprend ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TFGestAsso.MiseAJourListeVentes;
    begin
     with QListeEcritures do
     begin
      disablecontrols
      Close; // ici je change par active:=false
      SQL.Clear;
      SQL.Add('SELECT * FROM VENTES');
      SQL.Add('WHERE …');
      Open;  // ici par active :=true
      MNum:=FieldByName('NUM_VTE').AsString;    //<<mémorisation premier enregistrement
      enablecontrols;
    end;
    end;
    ensuite , personnellement , j'aurais géré la partie couleur dans le Ondrawdatacell , ce qui aurait évité une lecture de toute la table disgracieuse (le : First, while not EOF, next etc...)
    évidemment cela implique une variable de mémorisation de la valeur au niveau private de la form mais ce serait plus 'élégant'

    ATTENTION ceci est du copié collé et du code non testé
    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
    procedure TFGestAsso.DBGridDrawColumnCell(Sender: TObject; const Rect: TRect; 
      DataCol: Integer; Column: TColumn; State: TGridDrawState); 
    begin 
      with DBGrid.Canvas do 
      begin 
         // ----------------Gestion de la couleur-----------------------------------------
         if   (DBGrid1.DataSource.DataSet.FieldByName('NUM_VTE').AsString<>Mnum)     then begin
        if dbgrid1.Canvas.Brush.Color:=MCoulLigne1 
            then  dbgrid1.Canvas.Brush.Color:=MCoulLigne2
            else dbgrid1.Canvas.Brush.Color:=MCoulLigne1;
        Mnum:=DBGrid1.DataSource.DataSet.FieldByName('NUM_VTE').AsString;
     end;
     //-------------------------------------------------------------------------------------------
        if (gdSelected in State) or (gdFocused in State) then // pour avoir la ligne selectionné ou qui a le focus dans une autre couleur 
          begin 
            Brush.Color := clBlue; 
            Font.Style := [fsBold]; 
            font.Color := clWindowText; 
          end; 
      end;  
     
      Column.Grid.DefaultDrawColumnCell(Rect, DataCol, Column, State); 
    end;

  13. #13
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2004
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 264
    Par défaut Avec un TStringGrid de base classique
    voici ma méthode, c'est on ne peu plus simple, je dessine les cellules avec la méthode OnDrawCell tel que :
    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
    procedure TMain.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
                                        Rect: TRect; State: TGridDrawState);
    begin
      with StringGrid1.Canvas do
        begin
          Font.Color := clblack;
       // Changer la couleur de fond de la cellule courante mais aussi celles de la table.
          Brush.Color := $00B3FFFF;
       // Changer la couleur des lignes et colonnes fixes
          If (gdFixed in state) then Brush.Color := $56DCFE;
       // Changer la couleur des lignes et colonnes NON fixes
          If not (gdFixed in state) and (Arow < LigneStringGrid)  // LigneStringGrid est le nombre de lignes de la grille
            then
             begin // Ajuster la couleur fond lorsque une nouvelle ligne s'affiche.
               If StringGrid1.Cells[2, Arow] <> StringGrid1.Cells[2, Arow-1 ]  then Brush.Color := clRed  // --2-- si c'est la cellule de la deuxième colonne qui est testée
                 else
                   begin
                     Brush.Color := 7143423; //       9109503
                  // Corriger la largeur de la cellule pour colorer la séparation d'avec la cellule suivante.
                     Rect.Right := Rect.Right + StringGrid1.GridLineWidth
                   end;
            end;
          FillRect(Rect);
          Textout(Rect.Left +2, Rect.Top +3, StringGrid1.Cells[Acol,Arow]);
        end;
    end;
    Voilà.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Par défaut
    SergioMaster: c'est justement la lecture disgracieuse de mes données qui entrainait une gène. Je fais donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     QListeEcritures.DisableControls; 
     MNum:=FieldByName('NUM_VTE').AsString;
      WHile not eof do
      begin
      ....................
      end; 
     QListeEcritures.EnableControls;
    Alors si je rajoute un close ou active:=False, je ferme QListeEcritures et il devient difficile de parcourir les données.
    Par contre, pour la gestion des couleurs, avant de poster sur ce forum j'ai tenté une méthode similaire à celle que tu proposes mais ça ne marche pas et j'ai mis du temps à comprendre pourquoi:
    OnDrawColumnCell: redessine chaque cellule de chaque ligne l'une après l'autre. Donc le test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if   (DBGrid1.DataSource.DataSet.FieldByName('NUM_VTE').AsString<>Mnum)     then 
    ...
        Mnum:=DBGrid1.DataSource.DataSet.FieldByName('NUM_VTE').AsString;
    ne peut être vrai que pour la première cellule de chaque ligne. Or à chaque nouvelle cellule, tous les paramètres de mise en forme (color, font..) sont remis à zéro (valeurs définie dans les propriétés du composant). Donc toutes les colonnes à partir de la 2ème seront de la couleur Color du composant (blanc par défault).
    De plus,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if dbgrid1.Canvas.Brush.Color:=MCoulLigne1 
            then  dbgrid1.Canvas.Brush.Color:=MCoulLigne2
            else dbgrid1.Canvas.Brush.Color:=MCoulLigne1;
    donnera toujours McoulLigne1 (sauf si McoulLigne1 est égal à Color du DBGrid).

    F@bien.fd: j'y ai cru, mais comme tu le dis dans le titre, cette méthode s'applique à un StringGrid.... L'idée est bonne mais je sais pas si on peut comparer des valeurs de différentes lignes dans un DBGrid (si c'est possible on a LA solution).

  15. #15
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 595
    Billets dans le blog
    65
    Par défaut
    Si ton 'traitement' s'insére au niveau de la ligne 11 dans le code indiqué il ne devrait pas y avoir de soucis mais je me vois mal tester ^^

    pour ce qui est de ma proposition , je pensais que mcoulligne1 et mcomcouligne2 était des constantes genre clwhite,clsilver ?

    Je reste persuadé de n'être pas loin de la solution , cependant il est évident que je ne peux pas tester (enfin peut être que si sur mes BDD appli , dans ce cas suite au prochain post)

    [edit] problème solutionné
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    private 
      LColor : TColor;
      MNum : String;
    ...
     
     
    procedure TForm13.BitBtn1Click(Sender: TObject);
    begin
     with ZROQ do
     begin
      disablecontrols
      Active:=false
      SQL.Clear;
      SQL.Add('SELECT NOM,ASSORTIMENT,DESCRIPTION FROM ARTICLES');
      // la ligne en dessous n'est pas très propre, 
      // je préfère nettement utiliser des paramètres 
      // mais , bon , ce n'est que pour un test
      SQL.Add('WHERE LIGNE_PRODUIT='+QuotedStr(Edit1.Text));
      Active :=true
      enablecontrols;
    end;
    end;
     
    // à l'ouverture de l'ensemble de données (ZROQ) 
    // ne pas oublier d'initialiser la valeur de LColor dans mon cas clwhite
    // ne pas oublier d'initialisé MNum
    // ici j'ai utilisé l'évènement afterOpen 
    procedure TForm13.ZRoQAfterOpen(DataSet: TDataSet);
    begin
    Mnum:=ZRoQ.FieldByName('NOM').AsString;
    LColor:=clwhite
    end;
     
     
    procedure TForm13.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
      with DBGrid1.Canvas do
      begin
         // ----------------Gestion de la couleur-----------------------------------------
         if   (DBGrid1.DataSource.DataSet.FieldByName('NOM').AsString<>Mnum)
         then begin
         if lColor=clwhite
            then  LColor:=clsilver
            else  LColor:=clwhite;
          Mnum:=DBGrid1.DataSource.DataSet.FieldByName('NOM').AsString;
         end;
        brush.Color:=LColor;
       //----------------------------------------------------------------------------------------
        if (gdSelected in State) or (gdFocused in State) then // pour avoir la ligne selectionné ou qui a le focus dans une autre couleur
          begin
            Brush.Color := clBlue;
            Font.Style := [fsBold];
            font.Color := clWindowText;
          end;
      end;
     
      Column.Grid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 32
    Par défaut
    Effectivement, MCoulLigne1 et MCoulLigne2 sont des constantes et tu peux donc remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    then begin
         if lColor=clwhite
            then  LColor:=clsilver
            else  LColor:=clwhite;
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    then begin
         if lColor=MCoulLigne1
            then  LColor:=MCoulLigne2
            else  LColor:=MCoulLigne1;
    On obtient bien le résultat désiré et c'est exactement la solution que j'avais trouvée sauf qu'il y a un petit problème. Si tu utilises les flèches pour te déplacer dans ton DBGrid, tu obtiens des inversions de couleur des lignes et je ne te parle pas de l'utilisation du Scroll qui te donne des couleurs différentes sur une même ligne.
    C'est pour cette raison que je passe par un champ Couleur dans ma table.

  17. #17
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 595
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 595
    Billets dans le blog
    65
    Par défaut
    [edit] méa culpa
    il semblerait qu'il y ait effectivement un problème pas en scrolldown mais en scrollup ou fleche up .
    La solution serait donc a rechercher à la source (c'est à dire au SQL) mais cela dépendra beaucoup du SGBD (pour donner un exemple Firebird pourra faire des choses que Paradox ne permettrai pas)

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 03/05/2015, 23h29
  2. [Tableaux] Alternance des couleur dans un tableau
    Par leduc26 dans le forum Langage
    Réponses: 5
    Dernier message: 03/06/2007, 19h01
  3. Alterner la couleur dans une Listbox
    Par l.mnu dans le forum Access
    Réponses: 3
    Dernier message: 20/03/2007, 14h46
  4. Alternance de couleur dans dbgrid
    Par albedo dans le forum C++Builder
    Réponses: 3
    Dernier message: 18/04/2006, 11h46
  5. Alterner les couleurs dans un tableau
    Par langela94 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 24/01/2006, 13h56

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