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 :

Resize des collones d'une DBGRID


Sujet :

C++Builder

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut Resize des collones d'une DBGRID
    J'aurais encore voulu savoir une astuce concerant le composant DBGRID.

    J'ai un SimpleDataSet qui recupére les champs de ma table clients et les affiches dans une DBGRID.

    Le problémes est que mes champ de ma table sql sont défini en VARCHAR taille de 256.

    Lorsque j'affiche dans ma DBGRID les champs il defini la largeur des collones en 256 caractere alors que mes données ne font que 10 caractéres +-.

    J'ai pourtant défini dans les options DBGRID dgColumn Resize = true.

    Donc si quelqu'un connait l'astuce pour les resize automatique a la longeur max duchamp...

    Merci

  2. #2
    Membre éprouvé
    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 : 54
    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
    Par défaut
    Bonjour,

    Avec une idée trouvée sur le net, en Delphi (ici), on peut imaginer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    int TW = 0;
    TCanvas *cnv = DBGrid1->Canvas;
    DBGrid1->DataSource->DataSet->First();
    while(!DBGrid1->DataSource->DataSet->Eof)
    {
    	if (cnv->TextWidth(Trim(DBGrid1->Columns->Items[0]->Field->DisplayText)) > TW)
    	{
    		TW = cnv->TextWidth(Trim(DBGrid1->Columns->Items[0]->Field->DisplayText));
    	}
    DBGrid1->DataSource->DataSet->Next();
    }
    DBGrid1->Columns->Items[0]->Width = TW + 2;
    DBGrid1->DataSource->DataSet->First();
    pour la première colonne de ta grille, par exemple.
    Tu verras que dans l'exemple en Delphi, il boucle sur toutes les colonnes de la grille.

    Maintenant, pour 'automatiser' - car la l'évènement a été testé dans un OnClick d'un TButton - des le 'remplissage de la grille, on peut imaginer utiliser un évènement tel que 'AfterOpen()' des composants TTable ou TADOTable etc:::

    En espérant t'aider,
    @+

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut
    c'est pas si simple que ca je vois :p

    Il y a vrmrt que cette facon la ?

    je jetterais un oeil plus tard sur ce code si je trouve pas plus simple.

    Merci qd meme

  4. #4
    Membre éprouvé
    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 : 54
    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
    Par défaut
    Hummmfff ... ce n'est très complexe non plus.
    Ya juste a boucler sur toutes les colonnes si besoin (de 0 a ColCount-1) et refaire pour chacune le coup de la boucle 'While'.

    Je m'attendais plus a une objection du type: 'affichage/clignotement trop laid'
    ou un truc dans ce genre.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut
    oui mais quand je disais complexe je pensais que c'etait possible avec une option ou 2 et pas un code

  6. #6
    Membre éprouvé
    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 : 54
    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
    Par défaut
    oki, d'accord la dessus, m'enfin si tout était si simple, avoues que l'on s'ennuierais, non ?

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut
    j'aime bien m'ennuyer

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/04/2010, 13h20
  2. Réponses: 3
    Dernier message: 19/03/2009, 01h07
  3. Réponses: 0
    Dernier message: 17/06/2008, 15h43
  4. Modifier le titre des colonnes d'une DBGrid
    Par deubal dans le forum Composants VCL
    Réponses: 3
    Dernier message: 03/11/2005, 17h15
  5. Tri des colonnes d'une DBGRID
    Par Atrebate62 dans le forum Bases de données
    Réponses: 3
    Dernier message: 31/05/2004, 12h20

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