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

 Delphi Discussion :

Dessiner case à cocher dans DBGrid


Sujet :

Delphi

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 533
    Par défaut Dessiner case à cocher dans DBGrid
    Bonjour à tous,

    Je cherche à dessiner une case à cocher dans une colonne d'un DBGrid. J'ai suivi ce tutoriel. Je l'avais déjà utilisé par le passé.

    Mon DBGrid contient 3 colonnes, il est lié à un DataSource ds_select lui même relié à une requête q_select :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      q_select.Close; q_select.SQL.Clear;
      q_select.SQL.Add('select distinct colxcol, cdexent from ENTXRES, COLXRES where NUMXENT=NUMXCOL');
      q_select.SQL.Add('and CODXENT =:cod');
      q_select.SQL.Add('and TOUXENT =:tou');
      q_select.SQL.Add('and MARXENT =:mar');
      q_select.SQL.Add('and (refxcol is not null) group by cdexent, colxcol');
      q_select.ParamByName('cod').AsString := x_cli;
      q_select.ParamByName('tou').AsString := x_tournee;
      q_select.ParamByName('mar').AsString := x_transport;
    Cette requête me rempli donc les deux premières colonnes de mon DBGrid. Je veux que la troisième comporte donc ma case à cocher.

    J'ai bien créé ma procédure sur le DrawColumnCell :

    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 TFS42.DBGrid_SelectDrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin
     
      // On ne prend en compte que la colonne REGROUPER
    if sameText(Column.FieldName, 'REGROUPER') then
      begin
        { On efface la cellule }
        DBGrid_select.Canvas.FillRect(Rect);
        { Cochée ou Pas ?}
     
        dmImages.imgCheck.Draw(DBGrid_select.Canvas,
            Rect.Left + ((Rect.Right - Rect.Left - dmImages.imgCheck.Width) div 2),
            Rect.Top,
            Ord(Column.Field.AsString = '0')              //au lieu de Ord(monDB.Fields[3].AsString = '0')   sinon me coche toutes les cases sur la recherche
          );
      end
      { si column ne correspond pas à une case à cocher, }
      { on ne s'occupe pas du dessin de la cellule, on }
      { transmet donc à DefaultDrawColumnCell }
      else
      begin
        DBGrid_select.DefaultDrawColumnCell(Rect, DataCol, Column, State);
      end;
    end;
    Et j'ai mon datamodule avec mon imgList (imgCheck) qui comporte deux images une non cochée et une cochée.

    Mais vu que ma troisième colonne n'est pas liée à ma requête comment dois-je faire pour la remplir avec ma case à cocher vide ?

    Je vous met en pièce jointe mon écran affichage. La case à cocher est à mettre dans le tableau à droite troisième colonne.

    Merci d'avance
    Images attachées Images attachées  

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. case à cocher dans dbGrid pour sélection de ligne ?
    Par TheYoMan dans le forum Débuter
    Réponses: 2
    Dernier message: 24/07/2009, 09h59
  2. case à cocher dans une DBGrid
    Par beambeam dans le forum C++Builder
    Réponses: 9
    Dernier message: 17/05/2009, 13h28
  3. Réponses: 24
    Dernier message: 24/11/2005, 10h28
  4. [excel vba]case à cocher dans excel pour plusieurs lignes
    Par fcoisb dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/03/2005, 11h23
  5. Case à cocher dans une requête
    Par kloss dans le forum Access
    Réponses: 6
    Dernier message: 14/10/2004, 11h44

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