cs_oluha
Messages postés71Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention 5 février 2009
-
14 janv. 2005 à 14:06
cs_oluha
Messages postés71Date d'inscriptionvendredi 19 mars 2004StatutMembreDerniè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;
cs_oluha
Messages postés71Date d'inscriptionvendredi 19 mars 2004StatutMembreDerniè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.