Comment faire une recherche ou un filtre dans le composant treeview (fmx) avec la coloration des caractères ?
Comment faire une recherche ou un filtre dans le composant treeview (fmx) avec la coloration des caractères ?
Bonjour,
A priori je dirais : comme dans un treeview classique
mais s'agit-il d'une recherche partielle ou totale ? Et "avec coloration de caractères" cela veut dire quoi exactement ?
Et en dernier lieu comment est rempli ce treeview ?
Bonjour,
D'autres questions me sont venues à l'esprit :
Combien de niveau a ce treeview ? s'il n'en a que 2 avez vous pensez à remplacer le treeview par un Listview avec regroupements (Headers) qui contient en plus une fonction de recherche intégrée (à la mode Android de surcroît) ?
Sinon, un petit tour dans les sources de TlistView vous permettra peut être de retrouver la fonction de recherche
J'ai une base de données avec quatre tables comme suit :
T1 / secteur
T2 / domaine
T3 / sous domaine
T4 / fiche
Il devrait être affiché dans un TREEVIEW
Excusez-moi, je ne connais pas très bien le français, donc je ne pourrais pas mieux expliquer
Je cherche un moyen de chercher dans treeview fmx , Pouvez-vous aider?
Bonjour,
Ça ne répond pas totalement à mes questions !
Par exemple :
- je vois au moins deux manières de faire le remplissage par code
- il y a deux manières d'utiliser les tables lecture de chaque table ou une seule Requête avec jointures
Vous semblez avoir quelques difficultés à montrer le code de vos essais !
Je vous ai indiqué que la solution serait plutôt d'utiliser un ListView plutôt qu'un TreeView (je ne suis pas le seul à faire cette remarque puisque Sarina D. répond à peu près la même chose )
Il semble que vous persistez dans le choix TreeView.
En fait votre question est double voir triple !
- La recherche :
A mon humble avis, sans test, la méthode de recherche est la même que pour un treeview VCL. En gros, il suffit de lire tous les nœuds (via une procédure récursive) pour obtenir le texte de ce dernier et vérifier qu'il contienne l'élément recherché.
-le filtrage :
personnellement je jouerai avec les possibilités offertes par Firedac (encore faudrait-il savoir si c'est Firedac qui est utilisé pour accéder aux données !) et les propriétés Filter, Filterxxxx des sources de données. Mais bien sûr, personnellement, je n'utiliserai qu'une seule Query et certainement les LiveBindings pour remplir le TreeView (chose que je n'ai encore jamais tenté)
- La présentation
Là, par contre, vous allez vous heurter à quelque chose de nettement plus complexe car jouant sur le dessin même du treeview du coup je ne suis pas sûr que le treeview de base soit adapté.Et "avec coloration de caractères"
Deux solutions :
-soit vous faites votre propre composant dérivé du TreeView de base
- soit vous investissez (entre 150 et 175€ pour plus que le seul treeview) dans un composant TreeView plus adapté, je pense au composant TMSFMXTreeView qui permet d'accéder au canvas de chaque item ou encore mieux TTMSFNCTreeView (bien qu'ils soient à peu de chose près identiques, j'ai du mal à faire la différence entre les deux packs)
Ces derniers composants permettent que le texte du nœud soit en HTML (HTML simplifié toutefois) et donc vous permettront de facilement jouer sur "la coloration"
De plus, si vous en voulez davantage, ces composants ont toute une variété d'évènements qui accèdent au Canvas de l'élément en cours
Bonjour,
pour fignoler ma réponse :
remplissage par création de noeuds simples ou remplissage par création d'objets.je vois au moins deux manières de faire le remplissage par code
Pour la recherche et mise en évidence :
après quelques tests une autre solution est possible (et même peut être plus rapide!)
à base de sérialisation de l'arbre et d'expressions régulières (replace) il serait aisé de changer les textes (dans le cadre d'un Treeview TMS) pour y ajouter la "touche" HTML
Partager