Masquer des lignes dans une CustomGrid

Messages postés
123
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
7 août 2018
- - Dernière réponse : ThWilliam
Messages postés
424
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
Afficher la suite 

4 réponses

Messages postés
3869
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
5
0
Merci
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 !
Commenter la réponse de Bacterius
Messages postés
123
Date d'inscription
jeudi 10 janvier 2002
Statut
Membre
Dernière intervention
7 août 2018
0
Merci
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à...
Commenter la réponse de cs_Gerard
Messages postés
4996
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
27 mars 2018
9
0
Merci
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
Commenter la réponse de cs_cantador
Messages postés
424
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
26 novembre 2013
2
0
Merci
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
Commenter la réponse de ThWilliam