Dbgrid avec zone de recherche,tri,fleches,memos,molette,couleurs

Soyez le premier à donner votre avis sur cette source.

Vue 43 551 fois - Téléchargée 13 968 fois

Description

Voici une évolution du PersoDBgrid Posté précédemment.

Ce composant dérivé de TDBGrid réunit un certain nombre de fonctionnalités pour lesquelles des questions sont souvent posées.

points implémentés par ce code:
  • gestion des touches clavier par transmission de messages entre un DBGrid et un TEDIT
  • programmation de DrawcolumnCell pour gerer l'option dgRowSelect ou non avec de multiples sous-cas pour eviter le rappel de fonctions graphiques (scintillement)
  • regroupement de multiples fonctionnalités graphique trouvées par-ci par là et rassemblées ici

-molette
-fleche dans les entetes (http://www.delphifr.com/forum.v2.aspx?ID=326580)
-coloration des lignes (http://www.delphifr.com/code.aspx?id=31920)
  • affichage et export csv des champs memos(http://delphi.about.com) mais pas de mise à jour base
  • gestion des évènements graphiques assez complète mais difficile à suivre sur le code (des "flags" nombreux désolé).


------------------------------------------------------------------------------------------------

bugs et améliorations possibles non étudiés faute de temps ou de maitrise:
  • gestion du tri et de la recherche sur des champs memo non faite (cela at'il toujours un sens selon la taille des données memos.
  • la méthode de tri ne fonctionne qu'avec ado il faudrait une traitement alternatif pour des technologies moins magiques.
  • pas de gestion des selections en cours(bookmarks).
  • Dpuis la mise à jour, un evenement OnPersoEditKeyPress sur le message wmchar pour que chacun gére ses particularités lors de la saisie de chaines dans le sous composant TEdit.
  • il existe un bug ou un truc que je ne comprend pas lors du onColumnMoved : deux colonnes de même type ne s'echangent pas, sauf leur entete.


Tout n'est pas testé, pas le temps. Mais je compte sur vos commentaires pour compléter ma TODO list.

Conclusion :


pour le tester sous delphi7: ouvrir le groupe de projets, voir, gestionnaire de projets, clic-droit sur le paquet perso.dpk, et installer
Il se trouvera dans la palette CodesSources
Activer le projet principal projet1 (il doit etre en gras), executer.

premier clic sur une entete -> couleur active
second clic -> la zone de recherche s'affiche (si on garde withSearchEdit à true)
troisieme clic sur la zone de l'entete laissée libre ->tri (ne fonctionne qu'avec ADO, il faudrait implementer un traitement 'universel' par défaut pour d'autres cas. En attendant, si on assigne le gestionnaire OnTitleClick c'est celui-ci qui s'execute exclusivement.Je ne me suis pas penché sur le tri de query avec jointures externes qui plantent

Gestionnaire d'evenement OnPersoEditKeyPress pour la saisie dans la zone de recherche et mise à disposition de méthodes pour acceder aux seules propriétés nécessaires du TEDit resté privé par "sécurité" (PersoGrille.getPersoEditText par ex.)

Clic droit sur la grille -> un popupmenu avec export CSV permet le lancement d'un thread (unité séparée d'apres conseil de delphi_prog à valkyrie (http://www.delphifr.com/forum.v2.aspx?id=313802)
lors de l'export pour ouverture sereine dans excel:remplacement des ; par des ., des tabulations par un espace et des retour chariot par |
Les memos sont exportés aussi (pas de test de limite de taille)

je me suis bien creusé la tête pour qu'il soit relativement fonctionnel et j'espère que vous me ferez part de vos remarques maintenant que j'ai tout bien expliqué.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
2
Date d'inscription
dimanche 27 avril 2008
Statut
Membre
Dernière intervention
22 juin 2008

Merci bien pour ce travail que je trouve excellent et repend a plusiers besoins sans verifier votre source pour le moment pour autre sggestions ou cretique sur le plan programmation sauf quelque remarques.
-amelioration concerant le tri pour d'autre DB
-maitrise de la taille des colonnes pour une saisie visible et lisible
en vous envoi sur le net notre salutation
Messages postés
19
Date d'inscription
lundi 26 avril 2004
Statut
Membre
Dernière intervention
4 août 2010

Le zip a été mis à jour, il contient
*le code du composant mis à jour (avec fonction d'export CSV et disponibilité d'un évènement)-> pas de .dfm, il faut installer le composant comme décrit dans l'explication

*un projet de test avec le .dfm de la fiche de test

*un fichier groupe de projet pour manipuler la source du composant et lancer le projet de test facilement. (ouvrir avec le bloc note et modifier le chemin des projets du groupe le cas échéant)

Bon test
Messages postés
133
Date d'inscription
mercredi 4 janvier 2006
Statut
Membre
Dernière intervention
7 septembre 2010

Tu pourrais mettre le DBPersoGrid.dfm, afin de mieux visualiser ton travail. Merci
Messages postés
6
Date d'inscription
mardi 24 mai 2005
Statut
Membre
Dernière intervention
11 février 2009

Ton travail est tres interessent, bon continuation.

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.