Maintenant que j'ai découvert l'API SendMessage_(GadgetID(gadget),#WM_PASTE,0,0) pour insérer une chaine dans un gadget à l'endroit du curseur,
je voudrais savoir si ce même API ou un autre permettrait de récupérer une chaine de caractères qui serait en surbrillance dans un editeur gadget ou autre stringgadget ?
[resolu] récupérer un chaine de caratères en surbrillance
[resolu] récupérer un chaine de caratères en surbrillance
Dernière modification par Ar-S le mer. 23/déc./2009 14:41, modifié 2 fois.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
- Kwai chang caine
- Messages : 6989
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Re: récupérer un chaine de caratères en survrillance ?
Bonjour mon Arsounet
J'ai ce code de HYPER dans mon escarcelle, je ne sais pas si ça peut te servir

J'ai ce code de HYPER dans mon escarcelle, je ne sais pas si ça peut te servir

Code : Tout sélectionner
Procedure.s RTF_GetSelectedText(i_Gadget.i)
;/ -----------------------------------------------------------------------------
;/ Copy selected Text to String
;/ -----------------------------------------------------------------------------
Protected l_marked.CHARRANGE
Protected l_txt.s
SendMessage_(GadgetID(i_Gadget), #EM_EXGETSEL , 0, @l_marked )
l_txt = Space (1 + l_marked\cpMax - l_marked\cpMin)
SendMessage_(GadgetID(i_Gadget), #EM_GETSELTEXT, 0, @l_txt)
ProcedureReturn l_txt
EndProcedure
text$ = "{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fmodern\fprq1\fcharset0 Courier New;}{\f1\fswiss\fprq2\fcharset0 Arial;}{\f2\fswiss\fprq2\fcharset0 Verdana;}}"
text$ = text$ + "{\colortbl ;\red255\green0\blue0;\red0\green128\blue0;\red0\green0\blue255;\red0\green0\blue0;}"
text$ = text$ + "\viewkind4\uc1\pard\f0\fs20 normal \cf1 rot\cf0 \cf2 gr\'fcn\cf0 \b fett\b0 \cf3\b fettblau \cf0\b0 normal\par "
text$ = text$ + "Jetzt Text markieren und Fenster schließen klicken! \f1 Arial, \f2\fs28 Verdana\fs20 , \f0 Courier New\cf4\par "
text$ = text$ + "}"
OpenWindow(#PB_Any, 216, 0, 590, 300, "Popup Menu im Editor-Gadget" , #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar)
EditorGadget(9000, 10, 10 , 280, 280)
EditorGadget(9001, 300, 10 , 280, 280)
SetGadgetText( 9000, text$ ) ;/ Text reinsetzen
;/ Pause: Jetzt Textteile markieren
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
l_sel.s = RTF_GetSelectedText( 9000 )
;/ Rechts reinsetzen [leider ohne Format]
SetGadgetText( 9001, l_sel )
;/ Pause
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
Re: récupérer un chaine de caratères en survrillance ?
Pour l'Editor, utilise le code de Kwai chang caine, sinon pour le string tu peux prendre celui-ci:
Code : Tout sélectionner
If OpenWindow(0, 0, 0, 300, 280, "EditorGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
;EditorGadget(0, 10, 10, 280, 200)
StringGadget(0, 10,10, 280,20,"Selection dans un String")
ButtonGadget(1,100,240,100,20,"OK")
For a = 0 To 5
AddGadgetItem(0, a, "Ligne "+Str(a))
Next
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 1
Texte.s=GetGadgetText(0)
;Texte = RemoveString(Texte, Chr(10)) ;Utile seulement pour l'Editor
RetVal.l=SendMessage_(GadgetID(0),#EM_GETSEL,@StartPos.l,@EndPos.l)
If StartPos=EndPos
Debug "No Selection"
Else
Selection.s=Mid(Texte,StartPos+1,EndPos-StartPos)
Debug Selection
EndIf
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
EndIf
Re: récupérer un chaine de caratères en surbrillance ?
Merci KCC, c'est exactement ça !
je pense que la solution se trouve effectivement dans le #EM_EXGETSEL
Super ! Ô grand Shaolin du Gif
----edit-----
merci aussi nico,
comme ça la boucle est bouclée
je pense que la solution se trouve effectivement dans le #EM_EXGETSEL

Super ! Ô grand Shaolin du Gif

Code : Tout sélectionner
Enumeration
#aff:#go:#win
EndEnumeration
Procedure.s RTF_GetSelectedText(i_Gadget.i)
;/ -----------------------------------------------------------------------------
;/ Copy selected Text to String
;/ -----------------------------------------------------------------------------
Protected l_marked.CHARRANGE
Protected l_txt.s
SendMessage_(GadgetID(i_Gadget), #EM_EXGETSEL , 0, @l_marked )
l_txt = Space (1 + l_marked\cpMax - l_marked\cpMin)
SendMessage_(GadgetID(i_Gadget), #EM_GETSELTEXT, 0, @l_txt)
ProcedureReturn l_txt
EndProcedure
text$ = "j'aime le poulet"
OpenWindow(#win, 216, 0, 590, 300, "Popup Menu im Editor-Gadget" , #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar)
ButtonGadget(#go, 5, 275, 130, 22, "test")
EditorGadget(#aff, 10, 10 , 280, 250)
SetGadgetText(#aff,"j'aime le poulet" )
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case #go
text$=GetGadgetText(#aff)
text$=text$+RTF_GetSelectedText(#aff)
SetGadgetText(#aff, text$ ) ;/ Text reinsetzen
EndSelect
Case #PB_Event_CloseWindow
Select EventWindow()
Case #win
CloseWindow(#win)
Break
EndSelect
EndSelect
ForEver
----edit-----
merci aussi nico,
comme ça la boucle est bouclée

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
- Kwai chang caine
- Messages : 6989
- Inscription : sam. 23/sept./2006 18:32
- Localisation : Isere
Re: récupérer un chaine de caratères en surbrillance ?
De rien, c'est un plaisir de te faire plaisir 
Y m'a bien fait rire ton GIF, encore une fois, comme tes cerfs

Y m'a bien fait rire ton GIF, encore une fois, comme tes cerfs

-
- Messages : 471
- Inscription : dim. 23/déc./2007 18:10
Re: [resolu] récupérer un chaine de caratères en surbrillance
Salut.
Voici un code du soldat inconnu qui permet de selectionner du texte et de mettre des balises bbcodes devant et derrière ou d'incruster un mot à l'endroit du curseur.
Bye.
Voici un code du soldat inconnu qui permet de selectionner du texte et de mettre des balises bbcodes devant et derrière ou d'incruster un mot à l'endroit du curseur.
Bye.
Re: [resolu] récupérer un chaine de caratères en surbrillance
merci Geo, je n'ai pas ppu testé je ne suis pas chez moi, mais la solution m'a été donné par kcc.
je regarderai ça après le 24...
je regarderai ça après le 24...

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels