Page 1 sur 1

StingGadget et curseur

Publié : sam. 30/janv./2010 18:16
par superloupiot
Bonjour,

Après avoir inscrit un message dans un StringGadget à l'aide de la fonction SetGadgetText, et après avoir donné le focus au StringGadget à l'aide de la fonction SetActiveGadget, le curseur revient au début du texte.

Du coup, si on tape du texte, il se place à gauche du texte précédemment envoyé au gadget.

Est-il possible de positionner le curseur à la fin du texte envoyé au StringGadget?

Merci.

Re: StingGadget et curseur

Publié : sam. 30/janv./2010 19:31
par Kwai chang caine
La combine est de NETMAESTRO, BEACH et TRANQUIL 8)

Code : Tout sélectionner

Enumeration
 #Window_0
 #String_0
 #String_1
EndEnumeration

Define.l Event, EventWindow, EventGadget, EventType, EventMenu

OpenWindow(#Window_0, 450, 200, 246, 84, "String Test", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_SizeGadget)
StringGadget(#String_0, 10, 5, 200, 20, "Coucou")
StringGadget(#String_1, 10, 25, 200, 20, "")
RedrawWindow_(WindowID(#Window_0), 0, 0, #RDW_INVALIDATE|#RDW_UPDATENOW)

Delay(3000)
SetActiveGadget(#String_1)
Delay(3000)
SetActiveGadget(#String_0)

Repeat

  Event = WaitWindowEvent() ;Mise à la fin du curseur
  
  Select EventType() 
   Case #PB_EventType_Focus 
    ;SendMessage_(GadgetID(#String_0),#EM_SETSEL,$FFFFFFF,$FFFFFFF) ; Decommente cette ligne pour que le curseur se positionne a la suite ;-)
  EndSelect 
   
  Select Event

    Case #PB_Event_Gadget

      EventGadget = EventGadget()
      EventType = EventType()
      
    Case #PB_Event_CloseWindow

     EventWindow = EventWindow()

     If EventWindow = #Window_0
       CloseWindow(#Window_0)
       Break
     EndIf

  EndSelect

ForEver

Re: StingGadget et curseur

Publié : sam. 30/janv./2010 21:17
par superloupiot
OK,
La commande SendMessage fonctionne.
A la place des $FFFFFFF on peut aussi mettre la longueur de la chaine de caractères.

Merci.