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 :

Comment afficher un tableau dans TStringGrid ?


Sujet :

Composants VCL Delphi

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Comment afficher un tableau dans TStringGrid ?
    Je n'arrive vraiment pas a selectionné une seul celleule du StringGrid afin de la mettre en noir. J'ai un tableau en mémoire de 11 par 15 contenant des 0 et des 1 (0=blanc, 1=noir).
    Voici ma procédure DrawCell:
    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
     
    var
        liCol : integer;
        liRow : integer;
    begin
    for liCol := 0 to 10 do
        for liRow := 0 to 14 do
            begin
            if gaTblLabyrinthe[liCol, liRow] = 1 then
                begin
                // Il me manque le code pour selectionner chaque cellule a mettre en noir
                StgLabyrinthe.Canvas.Brush.Color := clBlack;
                StgLabyrinthe.Canvas.FillRect (Rect)
                end
            end
    end;
    Modération : ajout des balises Code,
    NoisetteProd

  2. #2
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    748
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 748
    Points : 500
    Points
    500
    Par défaut
    Salut au prealable tu remplis ton tableau avec tes valeurs binaires en fonction de la couleur que tu veux en font ensuite , l'exemple de procedure ci dessous devrait y aider a dessiner.
    C'est la valeur de la cellule qui determine la couleur donc tu doit pas oublier de la reecrire a l'interieur.
    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
     
     
    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol,
      ARow: Integer; Rect: TRect; State: TGridDrawState);
    begin
          with StringGrid1.canvas do
          begin
              Brush.style:=bsSolid;
              if  StringGrid1.cells[Acol,Arow]='0' then Brush.Color:=Clwhite
              else Brush.Color:=ClBlack
              FillRect(Rect);
              font.color:=Brush.Color;
              textout(Rect.left+2 ,Rect.top+2,StringGrid1.cells[Acol,Arow]);
       end;
    end;

    bye.

  3. #3
    Membre du Club

    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Points : 61
    Points
    61
    Par défaut
    Tu ne dois pas écrire une procédure DrawCell indépendante mais utiliser l'évennement OnDrawCell du TStringGrid

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    procedure TForm1.StgLabyrintheDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
     
      Var Couleur: TColor;
    begin
      If gaTblLabyrinthe[ARow,Acol]=1 Then Couleur:=clBlack
                                      Else Couleur:= clWhite;
      StgLabyrinthe.Canvas.Brush.Color := Couleur;
      StgLabyrinthe.Canvas.FillRect (Rect);
    end;

  4. #4
    Futur Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    J'ai résolu mon probleme en ajoutant ceci a ma derniere ligne de code:

    StgLabyrinthe.Canvas.FillRect (StgLabyrinthe.CellRect(liRow, liCol));

    Merci quand meme a vous tous pour les conseils!!! Tres apprécié!

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

Discussions similaires

  1. Comment afficher un tableau dans la jsp
    Par safsouff dans le forum Struts 1
    Réponses: 3
    Dernier message: 29/05/2008, 08h57
  2. Réponses: 2
    Dernier message: 27/03/2007, 10h25
  3. Comment afficher chaque fiche dans la barre des taches ?
    Par HASSANAIT dans le forum Composants VCL
    Réponses: 2
    Dernier message: 21/08/2005, 03h13
  4. Comment afficher les toolTipText dans une zone de statut ?
    Par nicok01 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 28/01/2005, 13h32
  5. Comment afficher FLASH directement dans le EMAIL
    Par Bilmagic dans le forum Flash
    Réponses: 3
    Dernier message: 05/06/2003, 00h38

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