Masquer des lignes dans une CustomGrid

cs_Gerard Messages postés 121 Date d'inscription jeudi 10 janvier 2002 Statut Membre Dernière intervention 7 août 2018 - 18 oct. 2009 à 20:16
ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 - 21 oct. 2009 à 19:17
Bonjour,

Je veux faire des tris dans des Grids (DrawGrid et StringGrid) et pour cela j'ai pensé affecter une hauteur nulle aux lignes que je voulais masquer.
Cela marche, mais il y a semble-t-il une petite difficulté: Si je mets une hauteur égale à 0, les petites lignes de séparation s'empilent les unes à côté des autres et rendent l'aspect du tableau pas terrible.
si je leur affecte la hauteur -1, alors presque toutes les petites lignes de séparation disparaissent (pas toutes!), ce qui rend la lecture d'un tableau assez large moins facile.
Quelqu'un a-t-il déjà eu connaissance de ce comportement a priori anormal et connait-il la solution.
D'autre part cela semble être un problème de dysfonctionnement du composant, (peut-être lié à l'EDI?) peut-on le signaler à Borland? Comment?

Merci

4 réponses

Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
19 oct. 2009 à 05:35
Hmm j'ai pas de solution miracle à portée de neurone là, mais ne serait-il pas possible de :

- stocker toutes les lignes qui ne doivent pas être effacées
- réduire le nombre de lignes de la grid
- remplir les lignes restantes par les lignes qui ne doivent pas être effacées

C'est crade et moche, mais je vois rien d'autre pour l'instant, à part peut-être une astuce dans le OnDrawCell du composant Grid ...

Cordialement, Bacterius !
0
cs_Gerard Messages postés 121 Date d'inscription jeudi 10 janvier 2002 Statut Membre Dernière intervention 7 août 2018
19 oct. 2009 à 06:44
Oui, c'était la première approche que j'ai eue, mais c'est assez compliqué, car ce sont des grilles interactives avec des liens et sur lesquelles il y a des tris par ordre possibles, etc...
J'ai donc fait des listes différentes pour chaque tri possible, mais c'est vite très lourd à déboguer.
j'avais trouvé que s'il était possible de masquer les lignes, c'était beaucoup plus simple...
Si personne ne connait le problème et bien sûr la solution, je vais en revenir là...
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
19 oct. 2009 à 16:16
bonjour,
lorsqu'on est confronté à un problème de tris multiples dans un StringGrid, cela devient vite compliqué et pas facile du tout à maîtriser...

dans ce cas, il faut abandonner cette solution pour se tourner vers des tables et faire des relations entre-elles.

Evidemment, une base de données ce n'est plus du tout le même monde mais en revanche tous les soucis de tri, recherche, extraction, maj, export, création d'états deviennent beaucoup plus faciles à gérer et cette initiative donne des solutions pérénnes.


cantador
0
ThWilliam Messages postés 418 Date d'inscription mardi 3 janvier 2006 Statut Membre Dernière intervention 26 novembre 2013 4
21 oct. 2009 à 19:17
Salut Gerard.

Perso je n'utilise plus le TStringGrid, pcq il stocke les données mais le fait très mal. Un Insert ou un Delete oblige à réactualiser les lignes suivantes (du moins avec Delphi7).
Pourquoi ne pas stocker tes infos dans un composant non visuel et se servir d'un DrawGrid (ou grid personnel) qui ne sert qu'à l'affichage (utilisation de OnDrawCell). C'est ainsi que travaille Excel.
Ainsi, tu tries ce que tu veux, puis tu réaffiches les lignes que tu souhaites voir.

A +
Thierry
0
Rejoignez-nous