un "findnearest" pour une combobox

un "findnearest" pour une combobox - Delphi/Pascal - Programmation

Marsh Posté le 27-06-2002 à 12:39:25    

Bonjour,
 
j'aurais savoir comment faire (a part trouver un autre composant  :D ) pour pouvoir saisir dans une combobox et qu'elle se place sur l'item le plus proche de ma saisie. C'est déjà le cas mais seulement pour la première lettre. :(  
 
Merci d'avance,
 
Mikael

Reply

Marsh Posté le 27-06-2002 à 12:39:25   

Reply

Marsh Posté le 27-06-2002 à 13:57:49    

sur l'evenement keypress tu peux faire une recherche sur le contenu de ta liste et te placer dessus


---------------
Hyndex - Meuaarf !! ReZo !!!
Reply

Marsh Posté le 27-06-2002 à 15:30:21    

merci mais ce que je n'arrive pas à faire c'est afficher l'item le + proche de ce que j'ai tapé dans ma combo. :(  
Exemple : tu tapes "dup" et j'aimerai que cela trouve le plus proche "durand" mais comme il y a aucun item dans ma liste qui commence par "dup" il laisse dup dans la combo.text !! :fou:

Reply

Marsh Posté le 27-06-2002 à 15:56:59    

Au lieu de findnearest, utilise locate qui permet de faire ce que tu veux ;)

Reply

Marsh Posté le 27-06-2002 à 15:59:13    

mik38 a écrit a écrit :

 
Exemple : tu tapes "dup" et j'aimerai que cela trouve le plus proche "durand" mais comme il y a aucun item dans ma liste qui commence par "dup" il laisse dup dans la combo.text !! :fou:  




 
Là c'est à toi de le programmer :
 
T'as rien trouvé pour dup alors tu retires la dernière lettre de ta saisie (à savoir "p" ) et tu fait une recherche avec "du" et ainsi de suite :hello:


Message édité par Thander le 27-06-2002 à 16:00:19
Reply

Marsh Posté le 27-06-2002 à 16:08:06    

kan tu tappe ton i-eme caractere, tu cherche dans les items de la combo celui qui a les (i-1)emes caracteres identiques et dont le i-eme caractere a la difference absolue entre les 2 acracteres la plus petite
 
tappe 'dup'
t'as dans la liste duflant, durand, zzoozo
 
du => duflant et durant, zzoozo est out
duflant : r-f = 114-102 = 8
durant : r-r = 114-114 = 0 <= durant retenu
 
Mais attention parce ke si tu as plusieur item en durXXX et ke tu impose le plus proche ... ben ta saisie, si tu n'utilise ke le clavier va etre fastidieuse => prevoir une preselection des (i+1)caracteres suivants du mot retenu pour que si tu tappe ensuite X k'il reparte dans le cas present sur durX et non durantX ...
 
euh j'espere etre clair ...


---------------
Hyndex - Meuaarf !! ReZo !!!
Reply

Marsh Posté le 28-06-2002 à 14:43:22    

en fait en mettant la propriété style à "csDropDownList" ça fait ce que je veux si on saisit rapidement. :p  
Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed