Ajustement de la largeur des colonnes d'une dbgrid

Soyez le premier à donner votre avis sur cette source.

Vue 7 333 fois - Téléchargée 1 745 fois

Description

Bonjour,

Voici 2 fonction pour ajuster la taille des colonnes d'une dbgrid, en fonction de l'espace disponible dans la dbgrid.

procedure AjusteChampGrid ( gr :TDBGrid; chp :string )
Cette procedure ne s'occupe que d'un seul champ, et l'étend sur tout l'espace non occupé par les autres champs visibles

procedure AjusteChampGrid ( gr :TDBGrid; chps :array of string )
Traite un tableau des champs a redimensionner.
Le tableau peut contenir les éléments suivants:

nom_du_champ=xx : La largeur du champ est fixée a xx

nom_du_champ=xx% : La largeur du champ est fixée a xx% de l'espace non occupé par les autres champs visibles, après redimensionnement des champs a valeur fixe ( =xx )

nom_du_champ : L'espace non occupé par les autres champs visibles est divisé entre les champs passée sans attributs ( sans =xx ou =xx% )

Cette démo a été faite avec Lazarus sous Fedora 17, en utilisant les composants standards d'accès au données ( SQLite3Connection, SQLTransaction, SQLQuery & Datasource ).

La base demo.sqlite est fournie, l'accès a la base est réinitialisé dans le FormCreate, donc on peut facilement changer les composants d'accès, en modifiant le FormCreate.

J'ai mis dans l'évènement DBGrid1TitleClick la fonctions d'ajustement du champ courant ( si l'espace le permet )

Le code est commenté dans les grandes lignes, et une petite doc est fournie

N'hésitez pas a me dire ce que vous en pensez

Philippe

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_cantador
Messages postés
4716
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
9 -
désolé, il y a peu d'utilisateurs sous Lazarus et Linux..
tu n'auras donc pas beaucoup de commentaires.
Ici, il faut déposer une source fonctionnant sous delphi
en précisant sa version de développement.

Toutefois, on va attendre que tu fasses la conversion et ces procédures pourront alors alimenter les codes SNIPPETS si toutefois, aucun bug n'apparait.

d'accord ?
pbazin47
Messages postés
16
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
15 septembre 2015
-
Bonsoir Cantador,
Oui, je me doute que Lazarus/Linux peut poser problème...
Je n'ai plus Delphi, donc j'utilise Lazarus ( son pauvre clône, si j'ose dire ), le code est du pur Pascal, c'est pourquoi je poste les procédures dans une unité séparée, il suffit ainsi de la rattacher a un projet.
Le problème peut venir, dans ce cas, des composants d'accès a la BDD, je l'ai indiqué dans la présentation, le reste, il me semble, est tout a fait compatible. ( dans cet exemple, le code n'agit que sur une dbgrid, donc il ne devrait pas poser de problème ).

Je vais voir si je peux trouver un ordi avec Delphi avant de poster autre chose.

Cordialement

Philippe
cs_cantador
Messages postés
4716
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
9 -
ton source s'adresse à des débutants en delphi..
il est nécessaire que le code soit compilable d'entrée.
moi-même, je ne ferais pas la conversion d'autant que les fontionnalités que tu proposes sont déjà
opérationnelles dans d'autres packs (TcyGrid free de Mauricio, TcxGrid, TwwwDbGrid etc..)

Donc, nous restons dans l'attente de ta modification.
pbazin47
Messages postés
16
Date d'inscription
mercredi 2 février 2005
Statut
Membre
Dernière intervention
15 septembre 2015
-
Bonjour Cantador,
En effet, le code doit pouvoir être utilisé par tous, et rapidement.
J'ai donc réinstallé Delphi 7 ( qui tourne sous Linux & emulateur windows ), et refait l'exemple.
J'ai utilisé les composants Zeos 7 ( disponibles sur http://sourceforge.net/projects/zeoslib/files/Zeos%20Database%20Objects/zeosdbo-7.0.3-stable/ ) pour accéder a la base SQLite, n'ayant pas trouvé comment faire avec dbExpress...
J'ai remis les 2 versions ( Delphi 7 & Lazarus ) dans le zip pour que chacun y trouve son compte.

Merci pour tes conseils, j'en ai pris bonne note

Cordialement

Philippe
cs_cantador
Messages postés
4716
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
9 -
bonne initiative pbazin47
Nous allons pouvoir regarder ton code..

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.