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 dessiner un ComboBox dans un StringGrid ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 155
    Points : 47
    Points
    47
    Par défaut Comment dessiner un ComboBox dans un StringGrid ?
    Bonjour,
    Quelqu un voit comment dessiner un combobox dans un stringGrid ?
    ca m a l air assez complique je ne vois pas comment c jouable
    merci d avance

  2. #2
    Membre habitué Avatar de phplive
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 179
    Points : 150
    Points
    150
    Par défaut
    Bjr,

    J'te le dis tout net : c'est galère !

    C'est pas pour rien que c'est pas implémenter par défaut ...

    En fait le pb n'est pas tant de dessiner la combo, non, mais de rester synchro avec la liste qd on utilise les touches de déplacement par ex mais surtout qd on fait défiler la grille avec les ascenseurs ou encore la roulette de la souris. Et ce ne sont que quelques pb parmi d'autres.

    Pour peu que tu aies une combo différente en fct du type de colonne, voir du type de cellule et ca se corse sévère

    Tu peux trouver des ex sur le net mais le mieux est soit d'acheter un composant grille vraiment digne de ce nom (genre mini grille Excel), soit développer ton propre composant ... j'y travaille

    Et je ne te parle pas des pbs que tu peux rencontrer avec un TDBGrid !

    Bonne chance

    @+
    Php
    @+
    Php

    D7 Enterprise - XP sp2
    The Truth is Out There

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 155
    Points : 47
    Points
    47
    Par défaut
    Je te remercie pour l info..
    .bonne journee

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 84
    Points : 82
    Points
    82
    Par défaut
    Ben, non, on peut le faire assez simplement, dans la méthode ondrawcell de ton stringgrid tu défini l'affichage ou la disparition de ta combobox.

    Voila le code qui place une combobox dans la cellule 5,2 de ton stringgrid.

    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
    procedure TForm1.stringgrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
      var rcb,r1:Trect;
    begin
    if (acol=5) and (arow=2) then
    begin
    rcb:=stringgrid1.CellRect(5,2);
    r1:=stringgrid1.CellRect(stringgrid1.FixedCols-1,stringgrid1.FixedRows-1);
    combobox1.Left:=rcb.Left+stringgrid1.Left;
    combobox1.top:=rcb.top+stringgrid1.Top;
    combobox1.Width:=stringgrid1.ColWidths[5];
    combobox1.Visible:=true;
     
    end else combobox1.Visible:=false;
     
    end;

  5. #5
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Oki ... solution un peu hard mais efficace qui consiste a deplcader le composant sur la cellue souhaite (si j'ai bien compris).
    Faire quand meme attention au fait que la ligne peut "disparaitre" en haut ou en bas.


    Sinon ya les composants TMS qui fournissent de belles grilles ... qui doivent surement gerer ce genre de problemes.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  6. #6
    Membre régulier Avatar de KRis
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 232
    Points : 105
    Points
    105
    Par défaut
    en effet les composants TMS, proposent une TADvStringGrid qui permet de mettre des combobox, des checkbox, memo, images, etc... dans les grilles.

    Bien fait, simple d'utilisation.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 84
    Points : 82
    Points
    82
    Par défaut
    Citation Envoyé par Clorish
    Faire quand meme attention au fait que la ligne peut "disparaitre" en haut ou en bas.
    C'est l'avantage du ondrawcell, car quand la ligne "disparait" en haut ou en bas, il ne se déclanche pas pour la cellule, d'ou le test sur Acol et Arow.

    Sinon j'utilise aussi les TMS, mais il sont payant, perso je les ai eu avec le cd de delphi 7

  8. #8
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    payant non.
    Ils sont gratuits ... mais pour une utilisation perso.
    Ils sont telechargeable depuis leurs site. Compo par compo ou par package.

    Si tu paye tu peut les utiliser a but commercial pour une ou plusisurs appli (developpeurs) selon la licence plus les codes sources.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 84
    Points : 82
    Points
    82
    Par défaut
    Oui mais en version gratuite tu as une phrase "version d'évaluation..." qui s'affiche dans le stringgrid

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/06/2011, 12h12
  2. Comment dessiner un CheckBox dans un TdbGrid ?
    Par barretsyd dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/11/2007, 12h33
  3. des combobox dans un stringgrid
    Par cibi182 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 21/04/2006, 10h00
  4. Comment insérer un ComboBox dans un cellule StringGrid
    Par Xavier dans le forum C++Builder
    Réponses: 4
    Dernier message: 09/01/2006, 11h36
  5. Comment dessiner une ligne dans un Chart ?
    Par libititi dans le forum Composants VCL
    Réponses: 3
    Dernier message: 16/06/2005, 14h56

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