Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DBGRID AVEC TRI SUR CLIC, MOLETTE ET COULEURS


Information sur la source

Catégorie :Composants Classé sous : dbgrid, tri, molette, composant, ado Niveau : Initié Date de création : 13/12/2005 Date de mise à jour : 13/12/2005 12:50:22 Vu / téléchargé: 8 657 / 3 037

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Sorti du vb et du php je me suis mis il y a peu à delphi 7 que je trouve le meilleur de tous ceux que j'ai testés en programmation surtout grace à la richesse de la VCL et au controle qu'il donne sur le code.
J'ai rapidement voulu tenter la création de composants à réutiliser à n'importe quelle occasion. (réutilisables, donc)
Je me suis attaqué à l'amélioration du DBGrid pour un usage plus confortable dans des projets.
Cette amélioration du tdbgrid comprend:
-la colorisation des lignes,
-la gestion de la molette,
-le tri des colonnes sur le adodataset client par clic sur la grille (si on l'utilise avec un adoquery ou adodataset)
Ces trois aspects sont décrits séparéments sur différents sites (dont codes-sources pour les couleurs, developpez pour le tri, et de la doc perso pour la gestion du message windows de la molette) mais je n'avais pas encore vu les trois fonctionnalités réunies.
Je cherchais à faire une fonction de tri en evitant le réenvoi de requetes sql et en utilisant les methodes ado disponibles, et je n'en avais pas trouvé ici. En voici donc une. La source est simple, mais m'a demandé du temps en lecture et recherches.
Cette source me semble propre mais je me trompe peut-etre et toute critique est bonne pour progresser
 

Conclusion

ce persodbgrid ne fait pas tout ce que je voudrais (il y a du boulot de documentation):
-pas de tri sur des jointures externes left (ou right) join si il n'a pas d'enregistrement sur une des tables de la jointure (index null peut-etre??)
-pas de recherche par zone de texte au dessus des colonnes (est-ce seulement possible dans un composant?)
-ce dbgrid a un nom qui ne convient pas à la postérité, normal.

 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   PersoDBGrid
  • dbdemos.mdbTélécharger ce fichier [Réservé aux membres club]462 848 octets
  • Project1.dprTélécharger ce fichier [Réservé aux membres club]Voir ce fichier188 octets
  • ProjectGroup1.bpgTélécharger ce fichier [Réservé aux membres club]848 octets
  • Unit1.dfmTélécharger ce fichier [Réservé aux membres club]1 317 octets
  • Unit1.pasTélécharger ce fichier [Réservé aux membres club]Voir ce fichier491 octets

Télécharger le zip

Historique

13 décembre 2005 11:16:31 :
J'ai rajouté le groupe de projets (le projet de test plus le paquet du composant) dans le zip Une capture d'ecran plus adaptée à l'illustration d'un composant
13 décembre 2005 12:50:23 :
zip nettoyé

Commentaires et avis

signaler à un administrateur
Commentaire de f0xi le 13/12/2005 12:25:58 administrateur CS

le code est propre, peu commenté par contre dans le composant, mais ça va.
je ne peu pas le tester car je n'utilise pas de BDD... mais le travail effectuer m'a l'air pas mal.

maintenant nettois ton zip des fichiers DOF, CFG, DCU, ~* et se seras parfais.

signaler à un administrateur
Commentaire de Adkiks le 14/12/2005 23:31:19

[Erreur]paquetCodeSource.dpk(4): Directive de compliation incorrecte:'ALIGN'
[Erreur fatale]paquetCodeSource.dpk(29): Paquet requis 'rtl' non trouvé.

signaler à un administrateur
Commentaire de cirec le 15/12/2005 00:24:05 administrateur CS

Juste un petit truc la déclaration du destructor:
Destructor TpersoDBGrid.Destroy;
Begin
  Inherited Destroy;
End;
N’est pas utile puisqu'elle ne fait qu'appeler la méthode héritée de DBGrid.Destroy ce qui se passera également si tu retires cette déclaration.

Si non c'est bien pour un premier code c'est propre simple et fonctionnel

@+
Cirec

signaler à un administrateur
Commentaire de pouicky le 15/12/2005 18:26:28

En fait ce Destructeur est un reste d'un essai avec un TEdit que je voulais gérer dans ce composant. J'avais commenté le code qui ne fonctionnait pas et effacé ensuite.. Il reste le "Inherited destroy...".
Question: Comment gérer un TEdit qui serait inclus dans ce composant ?
En considérant que le owner du TPersoDBbgrid est le owner du TEdit? et en écrivant un constructeur:
TPersoDBGRID.Create(owner)
begin
...
Edit:=TEdit.Create(Owner)
...
end;?
ou plutôt(mais je ne crois pas que c'est possible)
TPersoDBGRID.Create(owner)
begin
...
Edit:=TEdit.Create(self)
...
end;
???
Si quelqu'un a une piste, c'est pour faire apparaître une zone de recherche sur les en-tetes de colonnes au dblClic

signaler à un administrateur
Commentaire de cirec le 15/12/2005 18:39:23 administrateur CS

regarde cette source peut être qu'elle te sera utile
http://www.delphifr.com/code.aspx?ID=33687
@+
Cirec

signaler à un administrateur
Commentaire de pouicky le 15/12/2005 18:48:00

En fait la source que tu m'indiques n'est pas celle d'un composant, et la gestion du owner n'est pas à faire. C'est bien cela qui m'est difficile: sur quel evenement, par quel détour je dois instancier puis faire réagir mon TEdit inclus dans le PersoDBGrid (en remontant par le owner ou directement avec le PersoDBGrid)??

signaler à un administrateur
Commentaire de cirec le 15/12/2005 22:48:48 administrateur CS

Pose ta question sur le forum tu auras bien plus de chance d'avoir la bonne réponse à ta question, je me suis pour l'instant jamais penché sur ce genre de création. Désolé #^_^#

@+
Cirec

signaler à un administrateur
Commentaire de pouicky le 15/12/2005 23:06:06

Je me réponds apres avoir cherché dans quelques forums et suivi quelques mauvaises pistes:
sur le oncreate du composant TPERSODBGRid j'instancie un TEDIT:
eTests :=TEDit.Create(self)
Et j'enchaine aussitôt avec eTests.Parent:=self;
et là le TEdit est géré par son papa le TPersoDBGrid (propriété "visible:=True" possible alors que non si je ne faisais pas celà).
Merci de m'avoir guidé, même sur une fausse piste, ça permet de pousser le bouchon en étant confiant(je n'aurais pas testé ça sinon)
Un nouvelle version de la TPersoDBGRid pour bientôt?...

signaler à un administrateur
Commentaire de jmulans le 21/05/2007 10:14:08

Bonjour,

Genial ton code !
surtout pour les tri sur les colonnes, ça fait un moment que je cherchais comment le faire et finalement c'est simple :-)

merci !

signaler à un administrateur
Commentaire de milouddz le 19/05/2008 13:17:43

bonjour,
je suis un debiten, ca marche avec le base Paradox ?  

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Réactualiser les données avec ADO ? [ par Bruno ] Bonjour à tous,J'utilise les composants ADO pour me connecter sur une base Access.Un DataSet ADO pointe sur une table de plus de 10000 enregistrements DBGrid Tri sur click [ par Enigme ] Question:Je clique sur le titre d'une colonne d'un dbgrid et je veux qu'il me tri les données de manières ascendante au premier click, descendante au Image dans une DBGrid [ par rolea ] Je cherche un moyen d'afficher une image dans la ligne de titre d'un DBGrid.Exemple, je fais une requête avec un tri, et je veux ensuite afficher une Ado et connection a une base de donnee [ par developpeur_mehdi ] BonjoursVoila je voudrais connaitre la véritable utilité du composant adoconnection, car pour l'instant j'arrive a travailler directement avec le com Composant ado connection a une BD [ par developpeur_mehdi ] VoilaJaimer'ai savoir comment avoir un rafraichissement de la connection a une base de donnée automatiquement a l'ouverture d'un form1 (via le composa Tri DBGrid avec Table Paradox 7 [ par CptPingu ] Suite a la mise en ligne d'un script de DelphiProg, qui permettait de trier une Table en fonction du titre cliquer, j'aimerais savoir si la meme chose Recherche composant DBGRID pour DELPHI 2005 [ par richarddum ] Salut, Je recherche un composant DBGRID avec des fonctionnalités améliorées : checkbox, combobox... Il me semble qu'il existe &# Gérer la molette de la souris en multisélection dans un dbgrid [ par sylviecl ] Bonjour J'ai un dbgrid dans ma form et j'avais modifié mon prog pour qu'il gère la molette.Jusque là tout est ok.Mais maintenant j'ai b ADO et DBGrid [ par ultramagnetic ] Bonjour, débutant Delphi, je peine à faire avancer ma petite appli. J'ai 1 DataModule 1 TADOConnection 5-6 TADOQuery avec - 1requête SQ GESTION COMPOSANT DBGRID [ par adjena ] Bonjour,Quelqu'n pourrait-il m'aider a gerer un composant dbgrid pour faire des controle sur les cellule et ne pas pouvoir sortir de la cellule tant q


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,827 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.