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;
On peut 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;
//-------------------------------------------------------------------------------
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.