Bonjour,
Pouvez vous me dire ou je peu éditer la listes des mots pour l'autoProposition de synEdit ?!
Merci d'avance
Bonjour,
Pouvez vous me dire ou je peu éditer la listes des mots pour l'autoProposition de synEdit ?!
Merci d'avance
Il te faut un TSynCompletionProposal associé au TSynEdit. Il faut remplir ensuite ItemList et éventuellement InsertList si le texte à insérer est différent du texte affiché.
Bloon
Ok sa fonctionne ( GRAND MERCI ) mais comment: Metre un texte entre " ( ) " dans le text de la proposition et ne pas l'inscrire dans le synedit quand je selectionne cette ligne =).
De plus faire en sorte que apres qu'un mot soit tappé, que la boitte apparaisse si ce mot fait partie de la liste ...
Merci d'avance
Ma réponse n'était pas très longue mais j'ai l'impression que t'as pas tout lu :-)
si le texte à insérer est différent du texte à afficher, il faut utiliser InsertList :
Pour provoquer l'affichage du TSynCompletionProposal à l'endroit du curseur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 mySCP.ItemList.Add('(Magique)'); mySCP.InsertList.Add('Magique, les () ont disparu');
A toi de voir quand l'appeler (WordAtCursor est pénible car efface la sélection courante)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 var p : TPoint; begin with SynEdit1 do begin p := ClientToScreen(Point(CaretXPix,CaretYPix + LineHeight)); SynCompletionProposal1.Execute(WordAtCursor,p.X,p.Y); end; end;
Bloon
Merci! Dsl ,j'avais lu mais je ne l'avais pas compris comme sa![]()
Encor Merci
en essayant le code, il me répond que les types sont incompatibles (apparemment sur le lineheight)
Le code fonctionne, tu as dû faire une boulette. C'est quoi ton code ?
Bloon
oui, c'est ma faute, je l'avais placé dans la procedure On Change, ce qui fait que dès qu'on frappe une touche, le programme plante magistralement
Merci
Partager