Seite 1 von 1

Spingadget: Zeigerposition nach hinten verschieben

Verfasst: 29.01.2015 14:31
von Chimorin
Heyho,

gibt es eine Möglichkeit in einem Spingadget die Zeigerposition nach hinten, hinter das Geschriebene, zu verschieben?
Wir der Inhalt mit SetGadgetText() gesetzt, wandert der Zeiger nach vorne, bzw. markiert je nach Anwendung den gesamten Eintrag (In der PB-Hilfe ist das so).

Code: Alles auswählen

If OpenWindow(0, 0, 0, 140, 70, "SpinGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    SpinGadget     (0, 20, 20, 100, 25, 0, 1000)
    SetGadgetState (0, 5) : SetGadgetText(0, "5")   ; legt den Anfangswert fest
    Repeat
      Event = WaitWindowEvent()
      If Event = #PB_Event_Gadget
        If EventGadget() = 0
          SetGadgetText(0, Str(GetGadgetState(0)))
        EndIf
      EndIf
    Until Event = #PB_Event_CloseWindow
  EndIf

Re: Spingadget: Zeigerposition nach hinten verschieben

Verfasst: 29.01.2015 14:37
von RSBasic
Meinst du den Cursor?
Wenn ja, dann kannst du die Cursorposition ans Ende setzen, wenn man die Pfeiltaste nach oben/unten drückt:

Code: Alles auswählen

EnableExplicit

Define Event
Define SpinEditHandle

If OpenWindow(0, 0, 0, 140, 70, "SpinGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  SpinGadget     (0, 20, 20, 100, 25, 0, 1000)
  SetGadgetState (0, 5) : SetGadgetText(0, "5")   ; legt den Anfangswert fest
  
  Repeat
    Event = WaitWindowEvent()
    If Event = #PB_Event_Gadget
      If EventGadget() = 0
        SetGadgetText(0, Str(GetGadgetState(0)))
        
        SpinEditHandle = GetWindow_(GadgetID(0), #GW_HWNDFIRST)
        SendMessage_(SpinEditHandle, #EM_SETSEL, $fffffff, $fffffff)
        
      EndIf
    EndIf
  Until Event = #PB_Event_CloseWindow
EndIf
Bezüglich der Gesamtmarkierung nach dem Klick auf einen Pfeilbutton schaue ich später an.

\\Edit:
Ich wüsste jetzt gerade nicht, wie man die automatische Markierung abschaltet, nachdem man auf einen Pfeilbutton geklickt hat. Vielleicht im Callback.
Oder reicht der obere Code schon aus?

Re: Spingadget: Zeigerposition nach hinten verschieben

Verfasst: 29.01.2015 15:02
von Chimorin
Die Pfeiltaste nach oben/unten löst nur die Pfeile des Spingadgets aus (Nach oben, bzw. unten).

Code: Alles auswählen

SpinEditHandle = GetWindow_(GadgetID(0), #GW_HWNDFIRST)
        SendMessage_(SpinEditHandle, #EM_SETSEL, $fffffff, $fffffff)
Danke für die Hilfe, RsBasic. Dein Code ändert leider nichts an dem Problem.
Ich habe mein Programm einfach soweit angepasst, dass dieser Fall nur noch auftritt, wenn ich das will.