Re: Parseur

Posté par R&B le 21/4/2005 8:55:57
Pour la question subsidiaire, la solution tient dans l'utilisation des evènements de relache de bouton souris et touches et une gestion des propriétés ..Curseur et ..FinCurseur :
Lancée dans les évènements WM_KEYUP et WM_LBUTTONUP du champ sFormule, le code suivant assure la sélection de la 'balise' quand le curseur y pénètre.
// indique si la position en cours est une rubrique
// assure alors la sélection de la balise entière
PROCEDURE EstRubrique()
nPD=sFormule..Curseur
nPF=sFormule..FinCurseur
npEntrée,npSortie est un entier
// balises avant la position courante
npEntrée = Position(sFormule,"<",nPD-1,DepuisFin)
npSortie = Position(sFormule,">",nPD-1,DepuisFin)
SI npSortie<npEntrée ALORS
	// la balise est ouverte avant la position courante
	// on modifie alors les positions de la sélection
	nPD=npEntrée
	nPF = Min(Position(sFormule,">",nPF,DepuisDébut),Taille(sFormule))+1
FIN
// affecte les valeur de sélection (modifiées ou pas)
sFormule..Curseur=nPD
sFormule..FinCurseur=nPF


Un dernier point minime : la gestion du retour arrière répété du curseur qui ne saute pas la sélection mais la parcourre.

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=14&topic_id=2146&post_id=8978