Ajuster automatiquement la largeur des champs d'une tdbgrid

Résolu
cs_oluha
Messages postés
71
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
5 février 2009
- 8 déc. 2004 à 10:41
jmp77
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
- 9 déc. 2004 à 08:58
Bonjour

J'ai une tdbgrid que je rempli avec les données d'une table sous access. Seulement la largeur des champs est trop grande et j'aimerai donc qu'elle soit automatiquement ajustée au contenu du champ quand je charge mes données dans la grille.
J'ai trouvé sur le site une source qui permet de faire ca sur un champ quand on double clique dessus mais je n'arrive pas à l'adapter pour que ca s'applique à tous les champs de la grille.
Si quelqu'un pouvait m'aider...

Merci

3 réponses

cs_oluha
Messages postés
71
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
5 février 2009

8 déc. 2004 à 14:58
Merci pour le tuyau, j'ai réussi à adapter le code. Voici ma procedure pour les personnes que ca interresse :

procedure ResizeColumns();

var
J,MaxTextWidth, fieldwith : Integer;

begin

   // On fait toutes les colonnes du TDBGrid
   For J:=0 to Form1.GridFic.FieldCount-1 do
   begin
      // Initialisation
      MaxTextWidth := 0;

      // On recupere la longueur la plus grande contenu dans la colonne
      Form1.GridFic.DataSource.DataSet.First;

      while not form1.GridFic.DataSource.DataSet.Eof do
      begin
          fieldwith := Form1.GridFic.Canvas.TextWidth(form1.GridFic.datasource.DataSet.Fields.Fields[J].AsString);
          if (fieldwith > MaxTextWidth) then MaxTextWidth := fieldwith;
          Form1.GridFic.DataSource.DataSet.Next;
      end;
      // On applique la nouvelle taille a condition que la colonne n'était pas vide      
      If MaxTextWidth > 0 then form1.GridFic.Columns[J].Width := MaxTextWidth + 20;
   end;
end;
0
jmp77
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
8 déc. 2004 à 18:09
C'est cool j'avais pas encore adapter mon code de redimensionnement des stringgrid au dbgrid. Ca me ferra gagner du temps pour quand je le ferrai.

Merci pour ton code.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0
jmp77
Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
7
9 déc. 2004 à 08:58
Merci pour ce lien très interessant delphiprog.

Bonne prog,
JMP77.

N'oubliez pas de cliquer sur réponse acceptée.
0