I just meant something like that (with 4 columns):
Code: Select all
Enumeration
#Window
EndEnumeration
Enumeration
#ListIcon
EndEnumeration
Global count = 0
Procedure AllocateMemory2(Size)
count + size
ProcedureReturn AllocateMemory(Size)
EndProcedure
Procedure FreeMemory2(Memory)
count - MemorySize(Memory)
For i=0 To CountGadgetItems(#listicon)-1
If GetGadgetItemText(#listicon, i, 0)=Str(memory)
SetGadgetItemText(#ListIcon, i, Str(MemorySize(Memory)),2)
EndIf
SetGadgetItemText(#ListIcon, i, Str(Val(GetGadgetItemText(#ListIcon, i, 2))-Val(GetGadgetItemText(#ListIcon, i, 1))), 3)
Next
FreeMemory(Memory)
EndProcedure
Procedure ReAllocateMemory2(Memory, Size)
count + size - MemorySize(Memory)
ProcedureReturn ReAllocateMemory(Memory, Size)
EndProcedure
Procedure memorywindow(mem, name.s)
AddGadgetItem(#ListIcon, -1, Str(mem)+Chr(10)+Str(MemorySize(mem))+Chr(10)+Chr(10)+Chr(10)+name)
EndProcedure
Procedure Open_Window()
If OpenWindow(#Window, 650, 182, 325, 305, "Memory", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
ListIconGadget(#ListIcon, 20, 20, 275, 260, "Address", 50)
AddGadgetColumn(#ListIcon, 1, "Add", 50)
AddGadgetColumn(#ListIcon, 2, "Remove", 50)
AddGadgetColumn(#ListIcon, 3, "Diff", 50)
AddGadgetColumn(#ListIcon, 4, "Name", 60)
EndIf
EndProcedure
Open_Window()
*memory1=AllocateMemory2(200) : memorywindow(*memory1, "mem1")
*memory2=AllocateMemory2(400) : memorywindow(*memory2, "mem2")
*memory3=AllocateMemory2(600) : memorywindow(*memory3, "mem3")
FreeMemory2(*memory1)
FreeMemory2(*memory2)
Repeat: Until WaitWindowEvent()=#PB_Event_CloseWindow
...just a code to demonstrate.