@Aspirant
Also das mit dem Thread ist meiner Meinung schon etwas "unkonventionell".
Ich habs mal mit nem Callback versucht.
Funktioniert zwar, hat aber den Schönheitsfehler daß das
Zeichen der auszulösenden Taste kurz noch im StringGadget
zu lesen ist.
Vielleicht kanns einer noch verbessern.
Gruß FGK
Code: Alles auswählen
Procedure SetCallbackEx(hwnd.l, Proc.l)
Protected OldProc = SetWindowLong_(hwnd, #GWL_WNDPROC, Proc)
If OldProc
SetWindowLong_(hwnd, #GWL_USERDATA, OldProc)
EndIf
ProcedureReturn OldProc
EndProcedure
Procedure Callback(hwnd,msg,wParam,lParam)
Protected OldProc = GetWindowLong_(hwnd, #GWL_USERDATA)
result = #PB_ProcessPureBasicEvents
If #WM_KEYUP= msg
Select wParam
Case #VK_ADD
SetGadgetText(0,"")
ProcedureReturn result
Case #VK_SUBTRACT
SetGadgetText(0,"")
ProcedureReturn result
Case #VK_A
SetGadgetText(0,"")
ProcedureReturn result
Case #VK_1
SetGadgetText(0,"")
ProcedureReturn result
EndSelect
EndIf
ProcedureReturn CallWindowProc_(OldProc, hwnd, msg, wParam, lParam)
EndProcedure
OpenWindow(0, 100, 100, 300, 100, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
StringGadget(0, 8, 10, 306, 20, "", #PB_String_UpperCase)
SetCallbackEx(GadgetID(0), @Callback())
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow