Man kann auch mittels 'SetGadgetData()' Daten in einem Gadget speichern. Wenn man dieses Gadget dann mit 'BindGadgetEvent()' an eine Procedure koppelt, kann man innerhalb der Procedure mit 'GetGadgetData(EventGadget())' die Daten wieder auslesen. Man braucht da also kein kompliziertes Framework außenrum.
///Edit:
Hab mal kurz edels Beispiel angepasst:
Code: Alles auswählen
Procedure OnGadget()
gadget = EventGadget()
uData = GetGadgetData(gadget)
Debug "" + gadget +":"+ uData
EndProcedure
Procedure BindGadgetEvent_(GadgetID.i, *Callback, EventType.i, userData.i)
SetGadgetData(GadgetID, userData)
BindGadgetEvent(GadgetID, *Callback, EventType)
EndProcedure
Macro BindGadgetEvent(GadgetID, Callback, EventType, userData)
BindGadgetEvent_(GadgetID, Callback, EventType, userData)
EndMacro
Procedure Main()
Protected Window
Protected Gad1
Protected Gad2
Window = OpenWindow(#PB_Any, #PB_Ignore, #PB_Ignore, 200, 200, "")
If Window
ButtonGadget(0, 10, 10, 180, 25, "hm?")
ListViewGadget(1, 10, 35, 180, 150)
BindGadgetEvent(0, @OnGadget(), #PB_All, 555)
BindGadgetEvent(1, @OnGadget(), #PB_All, 444)
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
EndProcedure:End Main()