[resolu] position du curseur dans un éditorgadget ?
Publié : dim. 20/déc./2009 19:38
Pour un petit projet en cours, j'aimerai réussir à trouver comment récupérer la position du curseur dans un editorgadget.
Cette position serait l'endroit ou l'on clique dans le texte qui se trouve dans ce même editor.
C'est donc la procedure InserMot(gadget,mot$) qui me pose problème.
Je n'ai pas trouver autre chose qu'un positionnement de pixel or je préfèrerai un position par rapport au curseur dans l'editor mais je pense que vous m'avez compris.
Cette position serait l'endroit ou l'on clique dans le texte qui se trouve dans ce même editor.
Code : Tout sélectionner
;-PB 4.30
Enumeration
#Window_0
#editor
#Button_1
EndEnumeration
;}
Global NouveauTexte$, texte$,NbrDeCar
Procedure OpenWindow_Window_0()
If OpenWindow(#Window_0, 450, 200, 523, 193, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
EditorGadget(#editor, 10, 10, 500, 135)
SetGadgetText(#editor,"Mon editor plein de texte"+Chr(10)+Chr(10)+"des trucs, tout ça blabla"+Chr(10)+Chr(10)+"alors j'aimerai bien pouvoir placer mon curseur par exemple ici et qu'en"+Chr(10)+"cliquant sur le bouton, ça insère le mot cassoulet")
ButtonGadget(#Button_1, 8, 150, 505, 35, "clique ici pour insérer le mot cassoulet")
EndIf
EndProcedure
Procedure InserMot(gadget,mot$)
Texte.s=GetGadgetText(gadget)
NbrDeCar=Len(texte$)
; (... code à ajouter dont je n'ai aucune idée)
; text_Avant_Inser$= ???? ; ce qu'il y a après le curseur
; text_Apres_Inser$= ??? ; ce qu'il y a avant le curseur
NouveauTexte$=text_Avant_Inser$+mot$+text_Apres_Inser$
SetGadgetText(gadget,NouveauTexte$)
EndProcedure
OpenWindow_Window_0()
;{- Event loop
Repeat
Select WaitWindowEvent()
; ///////////////////
Case #PB_Event_Gadget
Select EventGadget()
Case #editor
Case #Button_1
MotAInserer.s="cassoulet"
InserMot(#editor,MotAInserer)
EndSelect
; ////////////////////////
Case #PB_Event_CloseWindow
Select EventWindow()
Case #Window_0
CloseWindow(#Window_0)
Break
EndSelect
EndSelect
ForEver
;
;}
Je n'ai pas trouver autre chose qu'un positionnement de pixel or je préfèrerai un position par rapport au curseur dans l'editor mais je pense que vous m'avez compris.