IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants VCL Delphi Discussion :

quelle est votre DBgrid préféré ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    839
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 839
    Points : 262
    Points
    262
    Par défaut quelle est votre DBgrid préféré ?
    bonjour,

    je lance un petit sondage:
    quelle DBgrid utilisé vous ?

    De mon coté c'est la smdBgrid de scalabium (freeware)
    Mais je voudrais évoluer (en payant si il le faut) et je ne sais pas quoi choisir .

    que pensez vous de le Ehlib ?


    merci

  2. #2
    Membre averti Avatar de zemeilleurofgreg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 515
    Points : 346
    Points
    346
    Par défaut
    Le JvcDBGrid est pas mal
    contenu dans la JVCL
    [Il était une fois Delphi ....]


  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    J'utilise le plus souvent le
    TEpcDBGrid (objet interne) basé sur le TcrGrid de CoreLab Devart car bien optimisé pour les TMyDataSet pour MySQL de CoraLab Devart, une vieille version

    TAdvDBGrid ou TAdvDBStringGrid de TMS, très fonctionnels mais aussi très lourd, encore une fois une vieille version, en tout cas, cela propose bcp plus de fonctionnalité que je pourrais en utiliser, en fait, y en a de trop ...

    TcxDBGrid de Dev Express, comme celui de TMS, mêmes fonctionnalités, mêmes lourdeurs ... mais il vrai ça a de la gueule ... moi, je n'y avais pas le droit, c'était pour ceux qui faisait des programmes Delphi 7, moi je faisais des programmes Delphi 7 aussi mais j'avais une contrainte de rétro-compatibilité sur Delphi 3 donc TDBGrid ... et on peut dire que je l'ai bien trituré ...

    TJvcDBGrid, je ne l'ai jamais creusé, chose à corriger !

    Sinon, je me débrouille très bien avec le bon vieux TDBGrid ou le TDBCtrlGrid ... je me gène pas pour jouer avec OnDrawColumnCell, pour dessiner une plus grosse Font, des images, de la couleur, ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre chevronné Avatar de chaplin
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 215
    Points : 1 819
    Points
    1 819
    Par défaut
    Le TcxDBGrid de Dev Express est très riche en possibilité, et puis ça donne de la "gueule" aux interfaces, les autres pas testés.

  5. #5
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    Citation Envoyé par looping Voir le message
    je lance un petit sondage:
    quelle DBgrid utilisé vous ?
    Personnellement, c'est la TCustomGrid que je dérive en fonction de mes besoins pour faire ce que je veux, exactement ce que je veux et surtout rien d'autre !
    Comme ça je ne perds pas mon temps à devoir supprimer/désactiver ou contourner des fonctionnalités introduites par un composant tiers qui veut faire automatiquement un tas de choses (et le plus souvent sans même qu'on le sache) alors que je ne lui ai rien demandé...

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    566
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2009
    Messages : 566
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    Personnellement, j'utilise ehLib http://www.ehlib.com EhLib Software. Ce composant est payant, mais d'un prix raisonnable sans les sources.

    Il me donne satisfaction pour travailler avec Firebird.

    J'ai utilisé smdBgrid, mais dans certaines situations, l'affichage n'est pas top.

    Par contre, je pense que pour l'avenir, je compléterai en dérivant de TCustomGrid, car comme la plupart des composants EhLib fournit une multitude d'options bien souvent inutiles.

    Voilà ma modeste expérience.

    Bon courage à tous

  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Citation Envoyé par Franck SORIANO Voir le message
    ... c'est la TCustomGrid que je dérive ...
    , c'est quand même pas à la portée de tous, faut investir quand même pas mal de temps pour reproduire le DataLink du TDBGrid ...

    Ce qui serait vraiement interessant ça serait de faire une Grid en appliquant quelques patterns pour déporter l'implémentation de plusieurs interfaces (genre IGridColumnController, IGridDataCellController, IGridDataLinker, ...) dans un code tiers, chaque interface ayant une tache bien précise ... après tout une DBGrid c'est une Grid, on peut imaginer un système de remplissage commun entre une DBGrid et une StringGrid (je pense en particulier à des chargements partiels et une ScrollBar simulé), et surtout interchangeable ... parce que l'héritage, c'est pas toujours le plus pratique, faut soit tout refaire, soit bidouiller comme un malade en recopiant des bouts de codes et qu'au final on a modifié à peine 5% de code ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  8. #8
    Membre averti Avatar de zemeilleurofgreg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    515
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2006
    Messages : 515
    Points : 346
    Points
    346
    Par défaut
    je pense qu'il n'y a pas vraiment de DBGrid miracle répondant à toutes les exigeances.
    Tout dépend de ce que l'on veut en faire.

    Mais par ordre de fréquence d'utilisation :

    1) le TDBGrid
    2) le JVCDBGrid
    3) le DXDBGrid
    [Il était une fois Delphi ....]


  9. #9
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 420
    Points : 5 819
    Points
    5 819
    Par défaut
    salut

    le TCustomGrid ,TDbGrid et le TStringGrid

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  10. #10
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Je pense plus au cxgrid de DevExpress.
    A la base, leur philosophie est différente des grille standard, mais une fois qu'on a compris leur fonctionnement c'est du bonheur.
    On progresse .....

  11. #11
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    , c'est quand même pas à la portée de tous, faut investir quand même pas mal de temps pour reproduire le DataLink du TDBGrid ...
    En fait, mon but c'est de me passer du DataLink aussi ! (bon d'accord ce n'est plus une grille DB )

    Au final, ça se résume simplement à dessiner la grille à partir de n'importe quoi comme source de données : TMemoryDataSet, TList, Array...
    Je crée une première classe dérivée enrichie avec plein de fonctions utilitaires pour facilité le dessin des cellules (en-tête avec un fond dégradé, numérique aligné à droite...).
    Puis je l'utilise comme une TDrawGrid pour afficher les données qui sont gérées indépendemment de la grille.

    De cette façon, tu peux faire des trucs de fou en 10 lignes de code (parfois un peu plus...).

  12. #12
    Membre éclairé Avatar de Kaféine
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 569
    Points : 736
    Points
    736
    Par défaut
    Salut,

    Pour moi, La meilleur grille pour delphi est définitivement la cxGrid de DevExpress. Outre la customisation des styles et du look&feel, l'architecture sous forme de View est un bonheur.
    Les fonctionnalités dèjà implémentées tel que les groupements, le système de filtre trés efficace sont un régal autant pour le développeur que pour l'utilisateur final.
    Leur ExpressDateController permet d'alimenter la cxGrid avec n'importe quel données d'un sgbd ou fichier xml, stream....
    Au niveau performance, je n'est eu jusqu'à aujourd'hui aucun problème.

    Bref pour moi, aucun regret à avoir claqué environ 400$ pour acquérir cette grille qui si on la regarde bien,
    fait economiser 5 ans de développement s'il fallait la developper en interne.

    PS: je n'ai pas d'action DevExpress ou aucun lien que ce soit avec cette société
    Akim Merabet

  13. #13
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Citation Envoyé par Franck SORIANO Voir le message
    ...dessiner la grille à partir de n'importe quoi comme source de données : TMemoryDataSet, TList, Array...
    tu passe par de l'héritage, ça ne serait pas plus pratique d'avoir un TGenericGrid auquel tu fournis un Itérateur, ce dernier étant créé à la volée et associé avec un DataSet, une Liste ou un tableau ... la composition c'est quand même plus facile que l'héritage systématiquement, exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Self.GGrid.Iterator := TGenericGridIteratorDataSet.Create(Self.MemoryDataSet);
    Self.GGrid.OwnIterator := True;
    Self.GGrid.Active := True; // ça affiche seulement là ! ... cela permet de gérer des BeginUpdate\EndUpdate ou Enable\DisableControls de façon générique aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Self.GGrid.Iterator := TGenericGridIteratorMaListe.Create(MaListe); Self.GGrid.OwnIterator := True;
    Self.GGrid.Active := True; // ça affiche seulement là ! ... cela permet de gérer des BeginUpdate\EndUpdate ou Enable\DisableControls de façon générique aussi
    TGenericGridIterator* implémente une interface IGenericGridIterator qui implémente First, Last, Prior, Next, EOF, BOF, GetRecord ...

    et l'on imagine comme pour le TField qui concerne le DataSet, selon le mêem principe, au lieu que les colonnes soit liées à un type de données, elles sont plutôt associé à un type de présentation pour les colonnes comme TGenericGridColumnLabel, TGenericGridColumnEdit, TGenericGridColumnCombo, TGenericGridColumnImage, TGenericGridColumnTreeView, TGenericGridColumnSubGrid, ...

    Finalement, le DataController de la cxGrid dont parle Kaféine, je ne l'a connais que trop peu pour avoir vu ça en 2004, est un début d'éclatement du code ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  14. #14
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 170
    Points
    4 170
    Par défaut
    Tu es en train de nous décrire la DataGrid de .Net

    Dans cette approche, tu restes sur des présentation de type liste de valeurs, avec chaque ligne présentée à l'identique de la précédente. Ca convient pour des besoins assez simples (comme n'importe quelle grille Db en fait).

    Personnellement, j'utilise assez peu de grilles, et très rarement sur des cas simples. Dès que tu veux changer la présentation d'une ligne en fonction de la nature de l'information représentée, passer une ligne en gras (ou avec une police différente) par ce qu'elle représente un sous total (ou une ligne de titre)... soit tu mes en place une usine à gaz côté paramétrage avec un composant plus ou moins générique, soit tu fais un truc qui déclenche des événements dans tous les sens afin de contrôler la présentation des données.
    Ou encore, tu prends une approche plus MVC ou document/vue :
    - D'un côté tu as les structures de données qui modélisent l'information à afficher.
    - Et d'un autre, la grille n'est qu'une vue pour dessiner la donnée. Dans ce cas, la grille te dis : "Je dois dessiner la cellule X,Y qu'est-ce que je fais ?". Et tout ce que j'ai à faire, c'est dessiner la cellule en fonction des données du modèle.
    - Si en plus il faut quelques interactions utilisateurs, tu peux ajouter un controlleur pour les gérer, qui ira modifier les données du modèle et invalider la grille pour quelle se redessine toute seule.

  15. #15
    Membre chevronné Avatar de chaplin
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 215
    Points : 1 819
    Points
    1 819
    Par défaut
    Citation Envoyé par Franck SORIANO
    ... soit tu mes en place une usine à gaz côté paramétrage avec un composant plus ou moins générique, soit tu fais un truc qui déclenche des événements dans tous les sens afin de contrôler la présentation des données.
    J'ai commencé avec TVirtualStringTree, je me suis plongé dans le code, très interessant, mais on passe beaucoup de temps dessus quoique le résultat était pas mal. En passant aux composants DevExpress, il faut quand même reconnaître qu'ils sont très bien fait et comme dit plus haut, faire son composant soi même demande du temps et de l'experience. L'inconvénient, comme ils sont paramétrable à volonté, il faut maîtriser toute cette complexité qui parfois donne envie de faire un composant soi même uniquement par rapport à des besoins précis.

    Bref, l'idéal serait de pouvoir créer un composant DBGrid à partir d'un wizard. C'est un peu décalé comme reflexion, mais en regardant un peu le code source de divers composants, on se rend compte qu'il y a des patterns pour ne pas employer le terme.

  16. #16
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Citation Envoyé par Franck SORIANO Voir le message
    Tu es en train de nous décrire la DataGrid de .Net
    Ah, ben, heureusement que le .NET qui est quand le dernier FrameWork Objet à la mode contient ce genre de chose, vu mon pauvre niveau en patterns, on peut espérer que les têtes pensantes de MicroSoft, le fassent si nous on l'imagine vaguement, tiens, j'en parlerais à mon cousin qui fait du C# ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. Quel est votre livre préféré sur Java ?
    Par Mickael Baron dans le forum Général Java
    Réponses: 106
    Dernier message: 10/05/2014, 13h00
  2. Quel est votre livre préféré pour Mac ?
    Par Marcos Ickx dans le forum Apple
    Réponses: 15
    Dernier message: 20/02/2009, 12h41
  3. Quel est votre livre préféré sur Java ?
    Par Ricky81 dans le forum Général Java
    Réponses: 138
    Dernier message: 25/11/2006, 03h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo