Gelöst: Wie markiert man den vorhandenen Text ?
Verfasst: 11.11.2019 11:21
Hallo Leute,
wie kann man bei diesem Code von Danilo
den vorhandenen Wert markieren, sobald das Gadget den Fokus erhält? Habe das mit
an verschiedenen Stellen versucht, es tut's aber nicht.
wie kann man bei diesem Code von Danilo
Code: Alles auswählen
;
; by Danilo
;
; http://www.purebasic.fr/german/viewtopic.php?f=16&t=26388&start=7
;
; Nummern-Eingabe Beispiele: 123 567,88 -12 -4,5
;
OpenWindow(0, #PB_Ignore, #PB_Ignore, 250, 80, "")
StringGadget(0, 10, 10, 200, 20, "")
CreateRegularExpression(0,"^\-{0,1}\d*$|^\-{0,1}\d+\,\d{0,2}$|^$") ; ^ = Anfang des Strings
; $ = Ende des Strings
; \d = Dezimalzahl 0-9
; + = 1 oder mehr Vorkommen
; * = 0 oder mehr Vorkommen
; | = alternative Moeglichkeit (Or in PureBasic)
; \, = Komma
; \-{0,1} = Minus{0 oder 1 mal}
; \d{0,2} = Dezimalzahl 0-9 { 0 bis 2 mal }
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
If EventGadget() = 0 And EventType() = #PB_EventType_Change
txt$ = GetGadgetText(0)
If MatchRegularExpression(0,txt$)=0 ; wenn kein Treffer, dann wieder vorherigen text setzen
SendMessage_(GadgetID(0),#EM_GETSEL,0,@endpos) : endpos - 1 ; cursor position holen
SetGadgetText(0,old$) ; alten text wieder setzen
SendMessage_(GadgetID(0),#EM_SETSEL,endpos,endpos) ; cursor position wieder setzen
Else
old$ = txt$
EndIf
EndIf
EndSelect
ForEver
Code: Alles auswählen
SendMessage_(GadgetID(1),#EM_SETSEL,0,-1)