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 :

[TdrawGrid] Insérer un bouton


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Points : 6
    Points
    6
    Par défaut [TdrawGrid] Insérer un bouton
    Bonsoir,

    je voudrais savoir s'il possible de mettre un bouton dans une case d'un tdrawgrid. Et quel est le code si c'est le cas. Merci d'avance.

  2. #2
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonsoir,

    Je te laisse un bout de code, qui m'a servi de test pour qqchose de similaire...

    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
     
    void __fastcall TForm2::DrawGrid1DrawCell(TObject *Sender, int ACol,
          int ARow, TRect &Rect, TGridDrawState State)
    {
    //
    if (ACol == 0)
    {
      DrawGrid1->Canvas->Brush->Color = clInfoBk;
      DrawGrid1->Canvas->FillRect(Rect);
      Form1->ImageList1->Draw(DrawGrid1->Canvas,Rect.Left + 9,Rect.Top + 9,7);
      DrawGrid1->Canvas->Font->Color = clRed;
      DrawGrid1->Canvas->TextOutA(Rect.Left + 4, Rect.Top + 1, AnsiString("Supprimer") + ARow);
    }
    else
    {
    if (ARow == 2)
    {
      DrawGrid1->Canvas->FillRect(Rect);
      Form1->ImageList1->Draw(DrawGrid1->Canvas,Rect.Left + 9,Rect.Top + 9,8);
    }
    }
    }
    C'est donc dans l'évènement OnDrawCell du DrawGrid, et ca marche aussi pour le StringGrid d'ailleurs...
    Donc passe ca au mixer, assaisonne a ton gout, en espérant que cela te serve.
    @ +

    PS : j'avais donc stocké les images 'boutons enfoncé'/'boutons relevé' dans une TImageList, d'ou leur apparition dans ce code...
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Merci bien je vais essayer de m'en sortir avec ça et pis si j'arrive pas je ferai un appel

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Bonsoir,
    Donc voila je vais expliquer plus en détail ce que je voudrais faire. J'affiche les résultats de requête sur une base de donées dans un TDrawGrid. Et comme il s'agit d'une CDthèque, cela m'affiche le titre de l'album, la durée, etc... Ce que je voudrais faire c'est pouvoir faire un bouton ou une action me permettant d'ajouter à un panier l'album se trouvant sur la ligne de mon Grid.(Il peut y avoir plusieurs album différents pour une meme groupe d'où la nécessité d'avoir pour chaque ligne la possibilité de mettre le CD au panier.)
    Voilà j'espère que je me suis à peu près exprimé clairement de façon à ce que vous compreniez.
    Merci à tous.

    PS: J'ai lu ton code Cantrelle mais je ne vois pas trop, d'où ce nouveau post et merci à toi.

  5. #5
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Salut,

    J'affiche les résultats de requête sur une base de donées dans un TDrawGrid.
    Mais pourquoi n'utilises-tu pas un DBGrid pour afficher le résultat d'une requete ?

    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    lol
    Parce que je suis pas bon et que je me suis fait aidé par slylafone et que ça marche nikel et que j'ai ce que je veux. Une autre question?? lol. J'ai tout fait à l'ancienne à la main sans utiliser le module de BD de BCB.
    Je comprends mieux comme ça. Bref maintenant c'est fait je vais pas me retaper les 3/4 de la programmation que j'ai faite sinon je pete un cable( j'ai déjà précisé que j'étais mauvais )
    Voilà c'est tout.

    PS: j'utilise sqlite c'est aussi pour ça

  7. #7
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonsoir,

    Tu peut éventuellement essayer ceci :
    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
     
    void __fastcall TForm2::Button13Click(TObject *Sender)
    {
    Form2->DrawGrid1->ControlStyle << csAcceptsControls;
    TButton *pBtton = new TButton(Form2->DrawGrid1);
    pBtton->Parent = Form2->DrawGrid1;
    pBtton->Caption = "Essai";
    pBtton->OnClick = pBttonClick;
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm2::pBttonClick(TObject* Sender)
    {
    ShowMessage(((TButton *)Sender)->Name);
    }
    //---------------------------------------------------------------------------
    avec dans le .H:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    void __fastcall pBttonClick(TObject* Sender);
    Cela place un TButton dans un TDrawGrid mais.....l'évènement Onclick() ainsi désigné ne réagis pas et - je suis peut etre passé a côté de qqchose - je n'ai toujours pas trouvé pourquoi.
    Ne m'oublies pas si jamais tu obtiens la solution
    C'est pour cela que je t'avais posté un code qui dessine des boutons soit enfoncés soit relevés (images stockées dans un TImageList), et qu'avec cela en gérant l'évènement OnSelectCell tu aurais pu essayer de redessiner le bon bouton et d'appliquer les actions nécéssaires pour garnir ton panier...

    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Je voulais essayer de faire quelquechose dans ce style:
    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
    while (result == SQLITE_ROW)
                {
                    AnsiString *pA = new AnsiString[mFieldCount];
                    for (i=0; i<mFieldCount-1; i++)
                    {
                    pA[i] = AnsiString((char *) sqlite3_column_text(pStmt, i));
                    }
                    //result = sqlite3_step(pStmt);
                    for(i=mFieldCount-1;i<mFieldCount;i++)
                    {
                     TButton *pA;
                     pA[i]=*Button1;
                    }
                    mpResults->Add(pA);
                    result = sqlite3_step(pStmt);
                 }
    Mais il me sort que Button1 n'est pas défini, je l'ai quand meme mis dans mon TForm alors je comprends pas.(je suis naif )J'ai aussi #include mon TForm.h mais c'est toujours pas défini.

    Sinon merci pour ta recherche sur mon bouton. Si ta une idée sur ce que j'ai mis et comment la corrigée je suis preneur. Et pis je vais quand meme regarder ce que tu m'as mis.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Iop,
    j'ai essayé ta méthode et je ne comprends pas non plus pourquoi sur le onclick rien ne se passe.tout semble pourtant bon. Je m'interesse donc à ta méthode de près. Faut juste que je trouve ensuite comment mettre le bouton qui apparait à la bonne place dans mon TDrawGrid et que je puisse effectuer quelquechose dessus ensuite.
    Voila bonne nuit ami programmeur.(je suppute que tu n'est pas une fille :p d'où pas de "e" à "ami").

  10. #10
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonsoir Meno,
    (codeur nocturne, lol)

    Ben déja tu déclares dans la même portée (si j'ai bien compris) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AnsiString *pA //etc, etc
    et
    Je ne pense pas que ce soit une bonne idée....Pour créer un nouvel objet, tu dois utiliser l'opérateur new (comme j'ai fais au dessus).
    Sinon de toutes façons, j'aurais séparé l'écriture des données dans le TDrawGrid de la création des boutons. J'aurais plutôt crée les boutons dans l'évènement OnDrawCell (déclenché par l'ecriture dans les cellules du TDrawGrid), ce qui permet de récupérer par ex les indices ACol et ARow qui permettent de désigner dans quelle cellule dessinner telle ou telle chose (par ex).
    Reste le 'petit souci' de l'évènement OnClick suggéré plus haut...

    Pour le OnSelectCell, un bout de code bricolé pour un test précédent (en partant du principe que les images-boutons etaient déssinées dans la première colonne) :
    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
     
    void __fastcall TForm2::StringGrid1SelectCell(TObject *Sender, int ACol,
          int ARow, bool &CanSelect)
    {
    if (ACol == 0)
    {
    TRect pRect = Form2->StringGrid1->CellRect(ACol, ARow);
    String S = Form2->StringGrid1->Cells[ACol][ARow];
    TGridDrawState State;
    Form1->ImageList1->Draw(Form2->StringGrid1->Canvas,pRect.Left + 9,pRect.Top + 9,8);
    if (MessageDlg(Ansistring("Inclure ") + S + (" a la liste ?"), mtWarning, TMsgDlgButtons() << mbYes << mbNo, 0) == mrYes)
    {
    //LA TU FAIS CE QUE TU VEUX
    }
    else
    {
    State.Clear();
    Form2->StringGrid1DrawCell(Form2->StringGrid1, ACol, ARow, pRect, State);
    }
    }
    }
    A revoir et améliorer surement

    Je n'avais pas vu ton dernier message : bonne nuitée de même Meno

    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Iop je me serai bien servi de ton code pour trouver une astuce la mais erf pas moyen dans les TDrawGrid, il n'y a apparament pas de Cells. ce qui ne me permet pas de selcetionner une cellule en particulier. J'ai essayé de trouver quelquechose qui ressemblait a Cells mais je n'ai rien trouver.
    C'est la loose :p

  12. #12
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Salut,

    Effectivement, j'aurais pas du changer de marque de bière, ca m'éparpille la cervelle...Et puis, c'est vrai d'abord, t'aurais pu choisir un DBGrid (ou un truc comme ca) comme tout le monde pour afficher le résultat d'une requête, tu le fais expres ou quoi ? (lol, je plaisante bien sur ).
    Bon et bien de ce fait on ne peut pas récupérer a priori le texte affiché dans la 'Cells'....Mais au moment ou tu renseignes le TDrawGrid, puisque chaque ligne semble correspondre a un CD différent, tu peut stocker au fur et a mesure le nom de chaque CD dans une TStringList.
    Comme on peut savoir grace a l'évènement OnSelectCell l'indice de la ligne selectionnée, cet indice peut te servir a désigner un élément de la TStringList et donc récupérer le nom du CD choisi ...et continuer a travailler .

    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Euh tu as pris quoi comme marque de bière?? Parce que ouaouh elle a l'air puissante c'est de la belzébuth??
    Bon sinon je peux toujours essayer(je dis bien essayer d'utiliser un DBGRID). Ca me simplifiera peut etre la tache enfin sinon je tiens comte de toutes tes jolies remarques et j'essaie à chaque fois un nouveau truc. La j'ai essayé d'utilisé un TstringGrid mais avec ma liste le résultat est affiché dans mon Grid mais hihi si je cherche à faire un ShowMessage d'une case particuliere et bien ya rien youpi..La je commence vraiment à me perdre dans les méandres du fin fond du c++et de la VCL.

  14. #14
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Montres un bout de code au sujet de ce TStringGrid, ca pourra toujours aider...merci.
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Voici Voila aussitot dit aussitot fait.

    bref voici un bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void __fastcall TForm1::GridDrawCell(TObject *Sender, int ACol, int ARow,
          TRect &Rect, TGridDrawState State)
    {
            AnsiString text;
            if (ARow > Rechercher.Count()) return;
            if (ARow == 0) text = Rechercher.GetFieldName(ACol+1);
            else text = Rechercher.GetField(ARow, ACol+1);
            Grid->Canvas->TextRect(Rect, Rect.left+4 , Rect.top+4 , text);
    }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void __fastcall TForm1::GridSelectCell(TObject *Sender, int ACol, int ARow,
          bool &CanSelect)
    {
     
     CanSelect=(Grid->Cells[ACol][ARow]=="test");
     AnsiString S="hello";
     S=Form1->Grid->Cells[ACol][ARow];
     ShowMessage(S);
     
     
    }
    La pour le ShowMessage(S); ben ya rien niet que neni. Et le CanSelect(trouvé grace à laide borland) ne fonctionne pas non plus, ce qui parait logique puisque S="" quelquesoit les valeurs de cellules spécifiées, donc mes cellules sont vide or c'est pas possible vu que j'ai à l'affichage les résultats de ma requête.
    PS: dsl j'ai mis du temps je cherchais à insérer l'image de ce que j'avais mais j'ai pas trouvé comment faire.

  16. #16
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    (re)Salut,

    Bon, déja toutes mes excuses, je ne comprends pas d'ailleurs mais j'ai le même phénomène...Bon si on reste sur le TDrawGrid et le coup de la TStringList :

    Avec dans le .H:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TStringList *pList;
    et avant le chargement de la grille :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pList = new TStringList();
    Puis :
    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
     
    void __fastcall TForm2::DrawGrid1DrawCell(TObject *Sender, int ACol,
          int ARow, TRect &Rect, TGridDrawState State)
    {
    //
    if (ACol == 1 && ARow > 0)
    {
      DrawGrid1->Canvas->Brush->Color = clInfoBk;
      DrawGrid1->Canvas->FillRect(Rect);
      Form1->ImageList1->Draw(DrawGrid1->Canvas,Rect.Left + 9,Rect.Top + 9,7);
      DrawGrid1->Canvas->Font->Color = clRed;
      DrawGrid1->Canvas->TextOutA(Rect.Left + 4, Rect.Top + 1, AnsiString("Disque ") + ARow);
      pList->Add(AnsiString("Disque ") + ARow);
    }
    }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void __fastcall TForm2::DrawGrid1SelectCell(TObject *Sender, int ACol,
          int ARow, bool &CanSelect)
    {
    if (ACol == 1 && ARow > 0 )
    {
    ShowMessage(pList->Strings[ARow - 1]);
    }
    }
    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Re iop,
    Alors soit je suis fou soit tu viens de poster. lol je dis ca parce que je voyais pas qu'on était déjà à la deuxieme page et que j'actualisais la première depuis que j'ai posté. Je vais essayer le coup de la TList.. Cela me semble etre une bonne alternative.En tout cas merci.

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Euh, si je suis bien ton code là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void __fastcall TForm2::DrawGrid1DrawCell(TObject *Sender, int ACol, 
          int ARow, TRect &Rect, TGridDrawState State) 
    { 
    // 
    if (ACol == 1 && ARow > 0) 
    { 
      DrawGrid1->Canvas->Brush->Color = clInfoBk; 
      DrawGrid1->Canvas->FillRect(Rect); 
      [u]Form1->ImageList1->Draw(DrawGrid1->Canvas,Rect.Left + 9,Rect.Top + 9,7); [/u]  DrawGrid1->Canvas->Font->Color = clRed; 
      DrawGrid1->Canvas->TextOutA(Rect.Left + 4, Rect.Top + 1, AnsiString("Disque ") + ARow); 
      pList->Add(AnsiString("Disque ") + ARow); 
    } 
    }
    tu utilises toujours ta liste d'image dans la première colonne c'est cela non?Bon je vais aller manger après j'essaie. à toute et encore comme toujours merci

  19. #19
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut

    tu utilises toujours ta liste d'image dans la première colonne c'est cela non?
    Ben c'est juste une proposition pour le test comme ca...après tu fais ce que tu veut bien entendu.
    Bon app, @ +

    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  20. #20
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Points : 6
    Points
    6
    Par défaut
    Iop,
    Je crois ta pas besoin de rechercher un cerveau de programmeur mon Gars. Ton truc c'est parfait. J'ai modifié quelques petites choses pour que ça marche comme je voulais mais la je te remercie énormément du fond du coeur. J'aurai passé3jours dessus avec toi mais ça valait le coup. Bref maintenant juste une petite fonction à faire et hop.(Petite fonction qui va bien me prendre la tete je pense).
    Bref quand mon projet sera fini je te l'enverrai comme ça tu pourras regarder en quoi tu m'as aidé (enfin si ça t'intéresse) . Et puis voilà je te montre un peu ce que j'ai mis mais merci merci merci. Et pis le noctambule c'est pas que moi . Je te proposerai bien de venir boire une biere chez moi mais je suis pas sur que ça le fasse pour toi, tu dois pas etre bien à coté. Ta le choix, Le Mans ou Cluny
    Bon ben bonne soirée. Pour ce soir ça m'ira demain je me tente la fonction qui permet de rajouter l'article au panier.
    Encore Merci,

    Et surtout Bonne nuitée AMI programmeur (je pense que je suis nul en C++ mais ce projet va me faire bien avancer dans mon niveau).
    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
    void __fastcall TForm1::GridDrawCell(TObject *Sender, int ACol, int ARow,
          TRect &Rect, TGridDrawState State)
    {
     
            AnsiString text;
            pList=new TStringList();
            if (ARow > Rechercher.Count()) return;
            if (ARow == 0) text = Rechercher.GetFieldName(ACol+1);
            else text = Rechercher.GetField(ARow, ACol+1);
            Grid->Canvas->TextRect(Rect, Rect.left+4 , Rect.top+4 , text);
            if(ACol==3&&ARow>0)
                    { Grid->Canvas->Brush->Color = clInfoBk;
                      Grid->Canvas->FillRect(Rect);
                      Grid->Canvas->Font->Color = clRed;
                      Grid->Canvas->TextOutA(Rect.Left + 4, Rect.Top + 1, AnsiString("ajouter"));
                      for(int i=0;i<ARow;i++)
                      {
                      pList->Add(AnsiString("Disque ") + (i+1));
                      }
                     }
     
    }
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void __fastcall TForm1::GridSelectCell(TObject *Sender, int ACol, int ARow,
          bool &CanSelect)
    {
     
     if (ACol == 3 && ARow > 0 )
    {
    ShowMessage(pList->Strings[ARow - 1]);
    }
    }

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Comment insérer un bouton dans un TJvOutlookBar ?
    Par neuneu1 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 29/10/2007, 23h28
  2. Insérer des boutons pour personnaliser un menu
    Par rimbaut dans le forum Excel
    Réponses: 2
    Dernier message: 27/07/2007, 12h21
  3. JTable : comment insérer un bouton dans une cellule ?
    Par donyas dans le forum Composants
    Réponses: 2
    Dernier message: 08/08/2006, 15h54
  4. Insérer un bouton en fournissant une valeur à onclick !
    Par stitch dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/05/2006, 01h10
  5. Réponses: 9
    Dernier message: 07/10/2005, 16h47

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