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

C++Builder Discussion :

Utiliser une DrawGrid


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 3
    Par défaut Utiliser une DrawGrid
    mon probleme est relativement simple enfin pour vous je pense


    j'ai une DrawGrid qui represente un emploi du temp semaine (avec les heures et les jours de lundi à samedi).

    je veux que lorsque je clique sur une cellule de couleur de fond blanche qu'elle devienne de couleur grise et inverse. Lorsque je clique sur une cellule de couleur grise qu'elle devienne blanche.

    J'ai deja essayer de le faire. Je galère vraiment car pour avoir la position de la cellule cliqué, il faut utiliser l'evenement "OnClick". et pour changer le fond d'une cellule il faut utiliser l'évenement "OnDrawCell" et cette événement je ne sais pas du tout l'utiliser.

    Pouvez vous m'aider please

  2. #2
    CGi
    CGi est déconnecté
    Expert confirmé
    Avatar de CGi
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 061
    Détails du profil
    Informations personnelles :
    Localisation : France, Allier (Auvergne)

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 061
    Par défaut
    Tu peux aller voir ici : http://chgi.developpez.com/drawgrid/
    Site : http://chgi.developpez.com

    Pourquoi faire simple quand on peut faire compliqué ? (Jacques Rouxel)

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 3
    Par défaut
    oui je suis aller voir mais je ne comprend pas bien. ça fait 6 heure que je lit son code en essayant de comprendre mais j'y arrive pas. comment en cliquant sur la cellule il arrive à faire passer l'information à l'évenement onDrawCell qui va redessiner la case. Enfin je comprend rien.

    Je suis pas le genre de gars qui cherche la reponse toute faite mais là franchement un peu d'aide ça serai cool

    merci d'avance

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2002
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 7
    Par défaut
    Je ne sais pas si je comprend bien ton problème mais j'ai déjas lu une question qui me semblait similaire...
    Crée un projet et Place y une String Grid...
    Voici le 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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    void __fastcall TForm1::StringGrid1SelectCell(TObject *Sender, int ACol,
          int ARow, bool &CanSelect)
    {
    if( (bool)StrToInt(StringGrid1->Cells[ ARow][ ACol])) StringGrid1->Cells[ ARow][ ACol]="0";
    else StringGrid1->Cells[ ARow][ACol]="1";
    Form1->Caption = StringGrid1->Cells[ ARow][ACol];
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
          int ARow, TRect &Rect, TGridDrawState State)
    {
    if( (bool)StrToInt(StringGrid1->Cells[ ARow][ ACol]))
        StringGrid1->Canvas->Brush->Color = clRed;
        else
        StringGrid1->Canvas->Brush->Color = clBlue;
    StringGrid1->Canvas->FillRect(Rect);
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    for( int i = 0; i<StringGrid1->ColCount; i++)
        for( int j = 0; j<StringGrid1->RowCount; j++)
            StringGrid1->Cells[ i][ j] = "1";
    }
    la couleur change en fonction de la valeur de la cellule mais tu peu très bien récupérer la valeur sur un autre tableau...
    Tout dépend de ce que tu veux faire...
    PS: l'évenement OnDrawCell sert à dessiner sur le Canvas de la Grille à l'emplacement de la cellule précisé par le paramêtre TRect &Rect!

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 3
    Par défaut
    merci à toi asfort c exactement ça que je chercher, merci beaucoup

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

Discussions similaires

  1. Utiliser une machine a distance
    Par baert dans le forum Réseau
    Réponses: 6
    Dernier message: 09/04/2004, 08h42
  2. Creer et utiliser une librairie externe à l'exécutable
    Par multani dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 06/11/2003, 10h11
  3. Macro utilisant une macro...
    Par Gogoye dans le forum C
    Réponses: 2
    Dernier message: 29/10/2003, 14h22
  4. Utiliser une librairie graphique
    Par Troopers dans le forum Linux
    Réponses: 6
    Dernier message: 22/08/2003, 11h22
  5. Réponses: 2
    Dernier message: 24/06/2003, 20h31

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