Dann probiers doch mal so ...
hier kommt nur wirklich ein "Debug" pro Aktion...
Code: Alles auswählen
DeclareModule MTest
Declare Set(Gadget)
EndDeclareModule
Module MTest
Procedure EventHandler()
Select GadgetType(EventGadget())
Case #PB_GadgetType_ListIcon
If GetGadgetState(EventGadget()) > -1
Debug "OK " + Str(GetGadgetState(EventGadget()))
EndIf
Case #PB_GadgetType_String
Debug "Change on String"
EndSelect
EndProcedure
Procedure Set(Gadget)
BindGadgetEvent(Gadget, @EventHandler(), #PB_EventType_Change)
EndProcedure
EndModule
OpenWindow(0,0,0,140,220,"Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListIconGadget(0,0,0,120,180,"Name",85)
StringGadget(1, 0, 185, 120, 20, "H")
For i=0 To 1
MTest::Set(i)
Next i
For i = 0 To 9
AddGadgetItem(0, -1, "name " + Str(i))
Next
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
Edit: Oder du erstellst dir eigene GadgetKreationen wie hier...
Code: Alles auswählen
DeclareModule MTest
Declare myListIconGadget(Gadget, x, y, Width, Height, Title$, TitleWidth, Flags = -1)
Declare myStringGadget(Gadget, x, y, Width, Height, Content$, Flags = -1)
EndDeclareModule
Module MTest
EnableExplicit
Procedure EventHandler()
Select GadgetType(EventGadget())
Case #PB_GadgetType_ListIcon
If GetGadgetState(EventGadget()) > -1
Debug "OK " + Str(GetGadgetState(EventGadget()))
EndIf
Case #PB_GadgetType_String
Debug "Change on String"
EndSelect
EndProcedure
Procedure myListIconGadget(Gadget, x, y, Width, Height, Title$, TitleWidth, Flags = -1)
Protected Result, ID
If Flags = -1
Result = ListIconGadget(Gadget, x, y, Width, Height, Title$, TitleWidth)
Else
Result = ListIconGadget(Gadget, x, y, Width, Height, Title$, TitleWidth, Flags)
EndIf
If Gadget = #PB_Any : ID = Result : Else : ID = Gadget : EndIf
If IsGadget(ID)
BindGadgetEvent(ID, @EventHandler(), #PB_EventType_Change)
EndIf
ProcedureReturn Result
EndProcedure
Procedure myStringGadget(Gadget, x, y, Width, Height, Content$, Flags = -1)
Protected Result, ID
If Flags = -1
Result = StringGadget(Gadget, x, y, Width, Height, Content$)
Else
Result = StringGadget(Gadget, x, y, Width, Height, Content$, Flags)
EndIf
If Gadget = #PB_Any : ID = Result : Else : ID = Gadget : EndIf
If IsGadget(ID)
BindGadgetEvent(ID, @EventHandler(), #PB_EventType_Change)
EndIf
ProcedureReturn Result
EndProcedure
EndModule
OpenWindow(0,0,0,140,220,"Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
MTest::myListIconGadget(0,0,0,120,180,"Name",85)
MTest::myStringGadget(1, 0, 185, 120, 20, "H")
For i = 0 To 9
AddGadgetItem(0, -1, "name " + Str(i))
Next
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow