Message de rapport:
 

Re: table mémoire et accès direct en tapant la 1ere lettre

Sujet: Re: table mémoire et accès direct en tapant la 1ere lettre
par JeromeR sur 20/3/2006 10:02:59

Bonjour,

Je ne sais pas si c'est vraiment ce que tu veux faire mais j'ai code ceci pour une de mes tables mémoire (en affichage).

Le but de ce code est que lorsque le focus est sur la table (une ligne est sélectionnée) si l'utilisateur saisie à l'aide du clavier par exemple "ad", le premier enregistrement de la table commencent par "ad" est automatiquement sélectionner.

Je te met ce bout de code au cas ou !

A placer dans l'evènement Initialisation de ta liste.
Evénement ("RechClavier", "<Nom_de_la _liste", 258)


Code de la procédure "RechClavier" :
PROCEDURE RechClavier(Message, wParam, lParam)
//On verifie que la touche enfoncée correspond à un caractère de l'alphabet
SI (65<=wParam<=89) OU (97<=wParam<=121) OU (wParam=32) OU (wParam=8) ALORS
	SI wParam=8 ALORS
		vCumulFrappe = ""
	SINON
		SI ((HeureDifférence(tDerFrappe,HeureSys())/100) < 5) ALORS
			vCumulFrappe = vCumulFrappe + Majuscule(Caract(wParam))
		SINON
			vCumulFrappe = Majuscule(Caract(wParam))	
		FIN
		TableSelectMoins(MoiMême..Nom)
		TableSelectPlus(MoiMême..Nom,TableCherche(MoiMême..Nom+".Nom",vCumulFrappe,Faux,DepuisDébut))
		tDerFrappe = HeureSys()
		ExécuteTraitement(MoiMême..Nom,trtSélection)
	FIN
FIN


Je t'explique en gros je regarde si la touche frapper est une lettre.
Si le temps écouler entre deux frappe est inférieur à 5 secondes je cumule les frappes sinon je remet à zéro et grade uniquement la dernière touche frappée.
Je fait la recherche dans la colonne de ma table qui m'intéresse et sélectionne la bonne ligne. J'exécute le traitement sur sélection de ma table.


Voila.

Si tu as des questions n'hésite pas.

Cordialement.
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2