Récupérer la taille du titre d'un DBGrid

Résolu
Signaler
Messages postés
71
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
5 février 2009
-
Messages postés
71
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
5 février 2009
-
Bonjour

J'ai fais une fonction qui permet de redimentionner automatiquement la largeur des colonnes d'une DBGrid en fonction de son contenu.
J'aimerai aussi pouvoir tenir en compte la taille du titre de la colonne mais je ne sais pas comment récupérer la valeur du titre.

Voici mon code :

procedure ResizeColumns();
var
J,MaxTextWidth, fieldwith : Integer;
begin
Form1.GridFic.datasource.DataSet.DisableControls;
// On fait toutes les colonnes du TDBGrid
For J:=0 to Form1.GridFic.FieldCount-1 do
begin
// Initialisation (largeur du titre)
MaxTextWidth := comment récupérer la largeur du titre de la colonne sur laquelle on pointe ?
// 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;
Form1.GridFic.datasource.DataSet.EnableControls;
end;

2 réponses

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

Ah ben je crois que je viens de trouver :

Form1.GridFic.Canvas.TextWidth(form1.GridFic.Columns[J].Title.Caption)
Messages postés
71
Date d'inscription
vendredi 19 mars 2004
Statut
Membre
Dernière intervention
5 février 2009

Ben ma fonction ne me pose pas problème dans mon cas puisque je n'affiche pas l'intégralité de ma table mais uniquement les 200 premiers enregistrements dans mon DBGrid.

Par contre je ne pense pas pouvoir vous aider avec paradox, je ne connais pas du tout ce type de base de données, j'utilise sql server et access.

Bon courage