Ajuster la largeur des colonnes du composant DBGrid au contenu

Soyez le premier à donner votre avis sur cette source.

Vue 492 fois - Téléchargée 47 fois

Description

Assalamu alaykum, Azul, Salut,

Voici l’exemple d’une application qui permet d’ajuster la largeur des colonnes du composant DBGrid au contenu, pour cela vous devez appeler la procédure
[Procedure AutoSizeColDBGrid(DBGrid:TDBGrid);] après chaque ajout d’un nouvel enregistrement, modification d’un enregistrement, suppression d’un enregistrement, filtrage des données pour l’affichage des enregistrements spécifiques , ou d’exécution des requêtes SQL qui permettent de faire les recherches sur les données de la base de données.

Exemple :
procedure TForm1.ADOTable1AfterPost(DataSet: TDataSet);
begin
AutoSizeColDBGrid(DBGrid1);
end;


Vous pouvez compiler directement sans construire la chaîne de connexion ADOConnection1. La base de données «Materiels_Informatique.mdb » doit se trouver dans le même emplacement que l’exécutable « Project1.exe »
Important : Mettre la propriété du composant ADOConnection1 : LoginPrompt à False.

------------------------------------------------
Informations:
Lorsque on créer le module de données (DataModule) on allant sur [Fichier --> Nouveau --> module de données] pour y mettre dedans les composants ADO tel que les composants ADOConnection, ADOTable la ligne suivant Application.CreateForm(TDataModule2, DataModule2); se génère automatiquement dans le fichier de projet Project1.dpr .
Déplacez la ligne Application.CreateForm(TDataModule2, DataModule2); au dessous de la ligne Application.Initialize; comme suit :

begin
Application.Initialize;
Application.CreateForm(TDataModule2, DataModule2);
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm3, Form3);
Application.Run;
end.

Pour que le module de données (DataModule) qui contient le composant ADOConnection se créer en premier avant toutes les autres fiches (formes), comme ça vous n’aurez pas d’erreur lorsque vous avez par exemple un composant ADOQuery qui s’active automatiquement au lancement de l’application placé sur la fiche Form1 de votre projet Delphi et que celui-ci est lié au composant ADOConnection.

-------------------------------------
//Procedure pour ajuster automatiquement la largeur des colonnes du composant DBGrid au contenu
//Cet Exemple m’a beaucoup aidé https://www.swissdelphicenter.ch/en/showcode.php?id=2041

Procedure TF_Principale.AutoSizeColDBGrid(DBGrid:TDBGrid);
var i, ColWidth, ColTextWidth:integer;
begin
if DBGrid.DataSource.DataSet.Active then
begin
DBGrid.DataSource.DataSet.DisableControls;
for i:= 0 to DBGrid.Columns.Count-1 do
begin
ColWidth:=DBGrid.Canvas.TextWidth(DBGrid.Columns[i].Field.DisplayLabel);
DBGrid.DataSource.DataSet.First;
while not DBGrid.DataSource.DataSet.EOF do
begin
ColTextWidth:=DBGrid.Canvas.TextWidth(DBGrid.Columns[i].Field.DisplayText);
if (ColTextWidth>ColWidth) then
begin
ColWidth:=ColTextWidth;
end;
DBGrid.DataSource.DataSet.Next;
end;{while}
DBGrid.Columns[i].Width:=ColWidth+30;
end;{for}
DBGrid.DataSource.DataSet.EnableControls;
DBGrid.DataSource.DataSet.First;
end;
end;
//-------------------------------------------------------------------------------

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Commenter la réponse de heljajay

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.