bonjour a tous !
comment je peut faire pour récupérer ce que j'ai séléctionner
dans un éditeur gadget ou même un string gadget ?
merci d'avence pour vos réponces
comment récupérer une séléction
comment récupérer une séléction
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !
Mon forum http://purebasic.forumphp3.com/index.php
Mon forum http://purebasic.forumphp3.com/index.php
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Re: comment récupérer une séléction
il faut utiliser l'api Windows, voici un exemple :
Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 4
;
; Explication du programme :
; Modifier un texte dans un StringGadget ou un EditorGadget en partant de la position du curseur
Procedure.s GetTextSelection(Gadget)
Protected Debut_Position, Fin_position, Texte.s, Index.l
Select GadgetType(Gadget)
Case #PB_GadgetType_String
SendMessage_(GadgetID(Gadget), #EM_GETSEL, @Debut_Position, @Fin_position)
Texte = GetGadgetText(Gadget)
Texte = Mid(Texte, Debut_Position + 1, Fin_position - Debut_Position)
Case #PB_GadgetType_Editor
SendMessage_(GadgetID(Gadget), #EM_GETSEL, @Debut_Position, @Fin_position)
For Index = 0 To CountGadgetItems(Gadget) - 1
If Texte <> ""
Texte + Chr(10)
EndIf
Texte + GetGadgetItemText(Gadget, Index)
Next
Texte = Mid(Texte, Debut_Position + 1, Fin_position - Debut_Position)
EndSelect
ProcedureReturn Texte
EndProcedure
Procedure SelectAllText(Gadget)
SendMessage_(GadgetID(Gadget), #EM_SETSEL, 0, Len(GetGadgetText(Gadget)))
SetActiveGadget(Gadget)
EndProcedure
Procedure EditText(Gadget, Type, Text_Start.s, Text_End.s = "")
; type = 0 : Insertion de texte sur le curseur
; type = 1 : insertion de texte autour de la sélection
Protected Debut_Position, Fin_position, Texte.s, Index.l
Select GadgetType(Gadget)
Case #PB_GadgetType_String
SendMessage_(GadgetID(Gadget), #EM_GETSEL, @Debut_Position, @Fin_position)
Texte = GetGadgetText(Gadget)
If Type = 0
Texte = Left(Texte, Debut_Position) + Text_Start + Text_End + Right(Texte, Len(Texte) - Fin_position)
Debut_Position + Len(Text_Start + Text_End)
Fin_position = Debut_Position
Else
Texte = Left(Texte, Debut_Position) + Text_Start + Mid(Texte, Debut_Position + 1, Fin_position - Debut_Position) + Text_End + Right(Texte, Len(Texte) - Fin_position)
Debut_Position + Len(Text_Start)
Fin_position + Len(Text_Start)
EndIf
SetGadgetText(Gadget, Texte)
SendMessage_(GadgetID(Gadget), #EM_SETSEL, Debut_Position, Fin_position)
SetActiveGadget(Gadget)
Case #PB_GadgetType_Editor
SendMessage_(GadgetID(Gadget), #EM_GETSEL, @Debut_Position, @Fin_position)
For Index = 0 To CountGadgetItems(Gadget) - 1
If Texte <> ""
Texte + Chr(10)
EndIf
Texte + GetGadgetItemText(Gadget, Index)
Next
If Type = 0
Texte = Left(Texte, Debut_Position) + Text_Start + Text_End + Right(Texte, Len(Texte) - Fin_position)
Debut_Position + Len(Text_Start + Text_End)
Fin_position = Debut_Position
Else
Texte = Left(Texte, Debut_Position) + Text_Start + Mid(Texte, Debut_Position + 1, Fin_position - Debut_Position) + Text_End + Right(Texte, Len(Texte) - Fin_position)
Debut_Position + Len(Text_Start)
Fin_position + Len(Text_Start)
EndIf
SetGadgetText(Gadget, Texte)
SendMessage_(GadgetID(Gadget), #EM_SETSEL, Debut_Position, Fin_position)
SetActiveGadget(Gadget)
EndSelect
EndProcedure
; Création de la fenêtre et de la GadgetList
If OpenWindow(0, 0, 0, 300, 300, "Texte", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget) = 0 Or CreateGadgetList(WindowID(0)) = 0
End
EndIf
StringGadget(0, 0, 0, 300, 25, "")
EditorGadget(1, 0, 30, 300, 100)
ButtonGadget(2, 0, 150, 300, 25, "Insérer le texte 'Blabla' au l'endroit du curseur")
ButtonGadget(3, 0, 175, 300, 25, "Entourer le texte sélectionné par '<b>' et '</b>'")
ButtonGadget(4, 0, 200, 300, 25, "Sélectionner tout le texte")
ButtonGadget(5, 0, 225, 300, 25, "Voir le texte sélectionné")
Repeat
Event = WaitWindowEvent()
;{ Focus
; Mis comme ça car il y a des problèmes de détection de focus avec les EditorGadget, de cette manière, c'est du solide
Focus = GetActiveGadget()
If Focus <> -1 And (GadgetType(Focus) = #PB_GadgetType_String Or GadgetType(Focus) = #PB_GadgetType_Editor)
Gadget_TextFocus = Focus
EndIf
;}
Select Event
Case #PB_Event_Menu
Select EventMenu() ; Menus
EndSelect
Case #PB_Event_Gadget
Select EventGadget() ; Gadgets
Case 2
EditText(Gadget_TextFocus, 0, "Blabla")
Case 3
EditText(Gadget_TextFocus, 1, "<b>", "</b>")
Case 4
SelectAllText(Gadget_TextFocus)
Case 5
MessageRequester("Sélection", GetTextSelection(Gadget_TextFocus))
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
End
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Re: comment récupérer une séléction
Merci
C’est pour voir ce que l’utilisateur a sélectionné
Donc le texte sélectionné devra être placé
Dans une variable pour que je puisse voir
C’est pour voir ce que l’utilisateur a sélectionné
Donc le texte sélectionné devra être placé
Dans une variable pour que je puisse voir
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !
Mon forum http://purebasic.forumphp3.com/index.php
Mon forum http://purebasic.forumphp3.com/index.php