Seite 1 von 1

StringGadget - Cursor ans Ende setzen

Verfasst: 24.11.2007 15:46
von ThoPie
Hallo,
wie ist es möglich, den Cursor ans Ende eines gefüllten StringGadgets zu setzen?
Vielen Dank.

Re: StringGadget - Cursor ans Ende setzen

Verfasst: 24.11.2007 16:04
von Kiffi
ThoPie hat geschrieben:wie ist es möglich, den Cursor ans Ende eines gefüllten StringGadgets zu setzen?
kann man mit API machen. Ich habe unten mal eine Procedure SelectAll()
erstellt, der man nur die Nummer des StringGadgets übergeben muss.

Code: Alles auswählen

Procedure SelectAll(StringGadget.l)
  SendMessage_(GadgetID(StringGadget), #EM_SETSEL, Len(GetGadgetText(StringGadget)), 0)
EndProcedure

; Test:

#Window=0
#StringGadget=0

If OpenWindow(#Window, 0, 0, 270, 140, "") 
  If CreateGadgetList(WindowID(#Window))
    StringGadget(#StringGadget, 10, 10, 200, 20, "Guck mal!")
    SelectAll(#StringGadget)
    SetActiveGadget(#StringGadget)
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf 
EndIf


Grüße ... Kiffi

Verfasst: 24.11.2007 16:21
von Helle
Noch ein Vorschlag mit #EM_SETSEL:

Code: Alles auswählen

If OpenWindow(0, 0, 0, 200, 50, "Caret an´s Stringende", #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered)
  If CreateGadgetList(WindowID(0))
    hSG=StringGadget(1, 10, 10, 175, 25, "")
    SetGadgetText(1, "Test")
    SendMessage_(hSG, #EM_SETSEL, $fffffff, $fffffff)  ;Caret an Ende des Strings setzen  
    SetActiveGadget(1)
  EndIf
EndIf
Repeat:Until WaitWindowEvent() = #PB_Event_CloseWindow
Gruss
Helle

Verfasst: 24.11.2007 17:01
von Kiffi
oh, falsch gelesen!

@ThoPie: Der Code von Helle ist der richtige.
Mein Code selektiert den im StringGadget stehenden Text.

Grüße ... Kiffi

Verfasst: 24.11.2007 18:16
von ThoPie
Danke schön. :allright: