wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :668

Membres en ligne : 0
Invités en ligne : 9
Pub hébergeur
Pourquoi cette pub ?

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Relever la position du dernier caractère, dans un wxStyledTextCtrl
Conversation (Résolue) : Relever la position du dernier caractère, dans un wxStyledTextCtrl
11-08-2011 14:15:06  Relever la position du dernier caractère, dans un wxStyledTextCtrl #1
Claude (Nouveau membre)
Inscrit le : 16-02-2011
Messages: 8
Snippets: 0
Tutoriels: 0
Hors ligne
Bonjour,

J'essaie en vain (c'est pour cela que je fais appel à vous...) de positionner dans un wxStyledTextCtrl, à la dernière lettre tapée, un PopupMenu.

Le Popup, pas de problème, mais je n'arrive pas à relever la position du dernier caractère, que ce soit en (x, y) ou en (point).

Quelqu'un aurait-il une idée?

Une piste à explorer?

Google, qui d'habitude m'est d'une grande utilité, est dans ce cas précis complètement ...wx.NULL...

Tout ce que je réussis à obtenir, c'est la position de la souris... mais ce n'est pas ça que je recherche.

Merci d'avance pour vos réponses et l'aide que vous pourrez m'apporter.


Claude
11-08-2011 22:03:33  Re: Relever la position du dernier caractère, dans un wxStyledTextCtrl #2
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne
Hello.
Après une première recherche (rapide je l'avoue) dans la doc, je n'ai pour l'instant rien trouvé.

Par contre, il m'est venu une idée : je suppose que tu veux afficher le menu lors d'une frappe au clavier (généralement, lorsque c'est à partir d'un clic droit, le menu est censé s'afficher à la position de la souris).

As-tu essayé de ne pas spécifier les coordonnées d'apparition du menu, pour voir ce que ça donne ?

C'est juste une idée en passant.
Je vais quand même continuer à chercher un peu pour traduire la position du  "caret" en coordonnées x/y.

@+
Xav'

Edit : As-tu testé l'appel à "GetCaretPosition", puis à "GetCaretPositionForIndex" avec le résultat de la précédente comme premier paramètre ?

Dernière modification par Xaviou (11-08-2011 22:11:03)


Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
12-08-2011 10:56:13  Re: Relever la position du dernier caractère, dans un wxStyledTextCtrl #3
Claude (Nouveau membre)
Inscrit le : 16-02-2011
Messages: 8
Snippets: 0
Tutoriels: 0
Hors ligne
Salut Xaviou et grand merci pour ta réponse.


Xaviou a écrit:
je suppose que tu veux afficher le menu lors d'une frappe au clavier
Oui, c'est pour afficher le menu lors d'une frappe au clavier.

Xaviou a écrit:
As-tu essayé de ne pas spécifier les coordonnées d'apparition du menu, pour voir ce que ça donne ?
Oui, le menu s'affiche sur le pointeur de la souris.
C'est justement en spécifiant un wxPoint(x, y) que l'on change la position d'affichage du menu.

Xaviou a écrit:
As-tu testé l'appel à "GetCaretPosition", puis à "GetCaretPositionForIndex" avec le résultat de la précédente comme premier paramètre
Oups! je ne peux pas, car:
1/ Ces deux méthodes font parties de la classe wxRichTextCtrl et moi j'utilise wxStyledTextCtrl.
2/ Je tourne ( toujours ) sous wxLua et cette classe ( wxRichTextCtrl ) n'est pas répertoriée par ce "wrapper".

En résumé, ( car peut-être y-a-t-il une autre solution à celle que j'envisage ) je cherche à  afficher dans un IDE, ( écrit en Lua avec wxWidgets ) une fenêtre wxMenu à la fin d'un mot-clé...


Merci et @++

Claude
12-08-2011 21:04:44  Re: Relever la position du dernier caractère, dans un wxStyledTextCtrl #4
Xaviou (Administrateur)
Lieu: Annecy (74)
Inscrit le : 27-08-2007
Messages: 1191
Snippets: 23
Tutoriels: 6
Site web
Hors ligne
Hello.
Claude a écrit:
Ces deux méthodes font parties de la classe wxRichTextCtrl et moi j'utilise wxStyledTextCtrl
Alors, tu peux essayer avec "GetCurrentPos", puis "PointFromPosition".

@+
Xav'

Le nouveau portail wxWidgets francophone : www.wxdev.fr
Ben en fait, vous y êtes déjà...
13-08-2011 09:05:18  Re: Relever la position du dernier caractère, dans un wxStyledTextCtrl #5
Claude (Nouveau membre)
Inscrit le : 16-02-2011
Messages: 8
Snippets: 0
Tutoriels: 0
Hors ligne
Que c'est beau la programmation, quand tout fonctionne comme on le souhaite... :D

Salut Xaviou.

Encore un grand merci à toi pour ton aide. :pouce:

Ce qu'il me manquait, c'était la méthode " PointFromPosition " que je n'avais pas repérée dans la liste et ce n'est pourtant pas faute de l'avoir parcourue dans tous les sens... comme quoi!

Mais c'est Super!
C'est exactement ce que je voulais faire, je vais enfin pouvoir continuer mon programme.

Et pour ceux que ça intéresse:( Codé avec wxLua )

Code:

 
editor = wxstc.wxStyledTextCtrl(frame, -1, wx.wxDefaultPosition, wx.wxDefaultSize, wx.wxSUNKEN_BORDER)
 
pos = editor:GetCurrentPos()
x   = editor:PointFromPosition(pos)
 
Et il suffit de rajouter le point "x" au PopupMenu, pour le positionner au dernier caractère du mot-clé.
 
menu = wx.wxMenu()
editor:PopupMenu(menu, wx.wxPoint(x))
 



@++

Claude
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Utilisation générale wxWidgets
» Relever la position du dernier caractère, dans un wxStyledTextCtrl