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

Résolu
cs_oluha Messages postés 71 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 5 février 2009 - 14 janv. 2005 à 14:06
cs_oluha Messages postés 71 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 5 février 2009 - 14 janv. 2005 à 16:45
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

cs_oluha Messages postés 71 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 5 février 2009
14 janv. 2005 à 14:18
Ah ben je crois que je viens de trouver :

Form1.GridFic.Canvas.TextWidth(form1.GridFic.Columns[J].Title.Caption)
0
cs_oluha Messages postés 71 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 5 février 2009
14 janv. 2005 à 16:45
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
0
Rejoignez-nous