2010-04-20 3 views
4

J'ai besoin d'un composant delphi pour Delphi 2007 win32 qui a des fonctionnalités comme la zone de recherche Google. ** Lors de l'écriture d'une clé de recherche, l'utilisateur doit remplir/rafraîchir la liste avec des valeurs, et l'utilisateur peut en sélectionner une.Delphi Rechercher Modifier le composant

** L'utilisateur peut monter et descendre dans la liste et en sélectionner un. ** La liste doit contenir des codes et une paire de texte, afin que l'utilisateur puisse sélectionner du texte et obtenir du code pour les opérations de base de données.

(Google peut mettre en évidence le texte de recherche dans la liste mais je pense qu'il est pas possible avec Delphi 2007, donc il ne devrait pas.)

J'ai essayé Devexpress TcxMRUEdit, mais il ne répond pas à mes besoins

+0

double, jetez un oeil à http://stackoverflow.com/questions/2012208/google-like-edit-combo-control-for-delphi –

Répondre

2

Puisque vous avez DevExpress, pourquoi ne pas essayer le cxLookupComboBox dans lsEditMode et avec ImmediateDropDown = True?

+0

1 - Faut-il suffient dupliquer cette fonctionnalité. – yozey

0

J'ai également eu le même problème et malheureusement n'ai pas trouvé un composant approprié. Je me suis également inspiré de google.

Il m'est donc apparu plus facile de «simuler un composant» en utilisant une zone d'édition et une grille placée en dessous. Au fur et à mesure que l'utilisateur saisit quelque chose dans la zone d'édition, la requête s'actualise et les résultats appropriés s'affichent dans la grille. J'ai plusieurs colonnes dans la grille, les résultats de la requête essayent de faire correspondre tous les champs (donc si je tape 'po', la requête retournera tous les enregistrements où n'importe quel champ est comme 'po%'). J'ai également ajouté un délai de 500ms après les types d'utilisateur pour éviter d'exécuter trop de requêtes inutiles (une autre approche pourrait être de tuer le thread lorsque l'utilisateur frappe une nouvelle clé, si la requête est exécutée dans un thread).

De cette façon, j'ai obtenu la fonctionnalité requise, même si sans mettre en évidence le texte de recherche, mes utilisateurs en sont ravis.

Dans chaque endroit j'utilise ce "composant" J'attache une requête à l'exécution afin qu'il puisse être utilisé sous de nombreuses formes différentes.

Je me suis également inspiré de l'interface utilisateur Skype: lorsque vous affichez le lsit de contacts, vous pouvez taper quelque chose et les contacts seront filtrés en conséquence (skype utilise une zone d'édition + grille/liste).

1

Découvrez les composants woll2woll. Le TLookupcombobox a fait cela depuis Delphi 3 (ou plus tôt). Ce n'est pas du spam, j'utilise juste la bibliothèque.

http://www.woll2woll.com/

Questions connexes