BindGadgetEvent() und StringGadget
Verfasst: 13.02.2017 13:16
Hallo. Ich habe da ein merkwürdiges Phänomen....
Wenn ich per BindGadgetEvent() einem StringGadget eine EventProzedur zuweise, wird diese zwar ausgeführt,
aber SendMessage_() scheint nicht zu funktionieren.
Wenn ich aber direkt in der Eventloop genau den gleichen Code schreibe funktionierts.
Kann mir das jemand erklären ?
Sollte doch egal sein ob per BindGadgetEvent oder in der Eventloop das abgefragt wird...
So funktionierts jedenfalls bei anderen Gadgets definitiv, nur beim StringGadget irgendwie nicht...
Wenn ich per BindGadgetEvent() einem StringGadget eine EventProzedur zuweise, wird diese zwar ausgeführt,
aber SendMessage_() scheint nicht zu funktionieren.
Wenn ich aber direkt in der Eventloop genau den gleichen Code schreibe funktionierts.
Kann mir das jemand erklären ?
Code: Alles auswählen
Define Event
Procedure Event_String()
SendMessage_(GadgetID(EventGadget()), #EM_SETSEL, Len(GetGadgetText(EventGadget())), 0)
EndProcedure
OpenWindow(0, 0, 0, 640, 480, "Test", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
StringGadget(1, 10, 10, 200, 20, "sldkjfhaölsdhfalfds", #PB_String_BorderLess)
BindGadgetEvent(1, @iString_Events(), #PB_EventType_Focus)
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case 1
; If EventType() = #PB_EventType_Focus
; SendMessage_(GadgetID(EventGadget()), #EM_SETSEL, Len(GetGadgetText(EventGadget())), 0)
; EndIf
EndSelect
EndSelect
ForEver
So funktionierts jedenfalls bei anderen Gadgets definitiv, nur beim StringGadget irgendwie nicht...