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 :

Probl�me avec ComboBox dans un StringGrid !


Sujet :

C++Builder

  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    508
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2008
    Messages : 508
    Par d�faut Probl�me avec ComboBox dans un StringGrid !
    Bonjour � tous,

    Dans mon application, j'ai un StrinGrid et j'ai cr�� des ComboBox sur la colonne 3 de mon StrinGrid, quand je clic sur ma combobox pour changer l'item, �a change les valeurs affich�es sur la cellule d'� cot� colonne 4.
    Mon soucis est que ceci est pris en compte que si j'ai s�lectionn� (ou cliqu�) sur une autre case de la m�me ligne de mon StrinGrid alors je pensai simuler un clic de souris ou autre chose comme �a pour que lorsque l'utilisateur veut s�lectionner un item dans la ComboBox c'est comme si il cliquait sur la cellule de StrinGrid qui se trouve en dessous.

    Merci d'avance pour votre aide, � bient�t !

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 412
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 412
    Par d�faut
    Salut !

    Si on suppose que j'ai tout compris, tu pourrais �ventuellement affecter la valeur de la ligne au Tag de chaque combobox
    Pour faire dans une �v�nementielle commune � toutes les combobox (par exemple la OnChange) :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    TComboBox *CB = (TComboBox*)Sender;
    StringGrid1->Cells[ 4 ][ CB->Tag ] = CB->Items-Strings[ CB->ItemIndex ];
    Autrement ... peut-�tre avec OnDrawItem et Objects ... (toute cellule de la colonne 4 dessinant le contenu de la combobox qui lui est associ�e via objects)... ... �a devrait �tre �galement possible ... !

    A plus !

  3. #3
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    508
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2008
    Messages : 508
    Par d�faut
    Merci henderson,

    mais je n'ai pas tr�s bien saisi ce que tu veux dire !

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 412
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 412
    Par d�faut
    Salut !

    Pourtant, je pense avoir �t� clair dans ce que je suis suppos� avoir compris !

    Si ces combobox sont cr��es dynamiquement... je suppose qu'elle le sont dans une boucle et que par cons�quent tu as du faire :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    TComboBox *CB;
    for(int ligne = première ligne; ligne <= dernière ligne; ligne++)
        {
        CB = new TComboBox(this);
        CB->Parent ... ; // je ne me souviens plus ici ...
        CB->SetBounds(...);
        // donc mémoriser sa ligne dans son Tag :
        CB->Tag = ligne;
        // elles se partagent la même OnChange
        CB->OnChange = ComboBoxChange; 
        }
    Tu d�clares dans la classe de la form une m�thode OnChange :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    public :
    void __fastcall ComboBoxChange(TObject *Sender);
    Que voici :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void __fastcal TForm1::OnChange(TObject *Sender)
    {
    // La comboBox Cible est :
    TComboBox *CB = (TComboBox*)Sender;
    // Donc
    StringGrid1->Cells[4][CB->Tag] = ...
     
    }
    Et c'est fini !

    L'autre solution ferait qu'on attache une combobox � une cellule de la grille (via Objects):

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    CB = new TComboBox(this);
    // bla bla ...
    // le truc du Tag est remplacé par celui des Objects 
    StringGrid1->Objects[ 4 ][ ligne ] = CB;
    Donc dans la OnDrawCell (j'avais �voqu� OnDrawItem ... ce qui �tait une erreur de ma part) de la StringGrid on ferait :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    AnsiString N;
    TComboBox *CB = (TComboBox*)StringGrid1->Objects[ Col ][ Row ];
    if(CB != NULL) N = CB->Items->Strings[ CB->ItemIndex ];
    else N = StringGrid1->Cells[ Col ][ Row ]; 
    //.. bla bla ...
    StringGrid1->Canvas->TextOut(..., ...,  N);
    Dans leur OnChange on ferait juste :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    StringGrid1->Repaint();
    Par contre ... je ne sais pas ce que tu fais exactement donc ici ... je me contente de traiter les cha�nes.

    A plus !

  5. #5
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    508
    D�tails du profil
    Informations personnelles :
    �ge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Avril 2008
    Messages : 508
    Par d�faut
    Merci henderson,

    cette fois ci j'ai bien compris (je suis un peu long � la d�tente) !

    J'ai opt� pour la premi�re solution mais � la place j'utilise la m�thode OnSelect de la ComboBox.

    A bient�t !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [Debutant]Probl�me Insertion Requ�te dans un StringGrid
    Par ghan77 dans le forum Web & r�seau
    R�ponses: 3
    Dernier message: 07/12/2005, 14h25
  2. Probl�me avec Between dans un code
    Par Sendo dans le forum Access
    R�ponses: 4
    Dernier message: 02/10/2005, 18h44
  3. probl�me avec graphique dans �tat access
    Par petitmic dans le forum Access
    R�ponses: 5
    Dernier message: 07/09/2005, 14h55
  4. Comment dessiner un ComboBox dans un StringGrid ?
    Par gilles641 dans le forum Composants VCL
    R�ponses: 8
    Dernier message: 30/07/2005, 15h19
  5. Probl�me avec TNMSMTP dans une boucle.
    Par Orgied dans le forum Web & r�seau
    R�ponses: 3
    Dernier message: 07/04/2004, 10h19

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