be able to insert new entires.
I looked at all the menu commands but could not find anything to delete a submenu.
I am trying to create a recent files for my program, similar to the way TextEditors recent files work.

Code: Select all
Global NewList RecentFiles.s()
#RecentFiles = 1000
Procedure BuildMenu()
If CreateMenu(0, WindowID(0))
MenuTitle("File")
OpenSubMenu("Recent files")
; Add recent files list
i=0
ForEach RecentFiles()
MenuItem(#RecentFiles+i, RecentFiles()) : i+1
Next
CloseSubMenu()
EndIf
EndProcedure
Code: Select all
Global Window_0
Global Button_Clear, Button_fill
Global NewList RecentFiles.s()
#RecentFiles = 10
Procedure BuildMenu() ;Builds the Menu
If CreateMenu(0, WindowID(Window_0))
MenuTitle("File")
OpenSubMenu("Recent files")
; Add recent files list
i=0
ForEach RecentFiles()
MenuItem(#RecentFiles+i, RecentFiles()) : i+1
Next
CloseSubMenu()
EndIf
EndProcedure
Procedure FillSubMenu() ;Put a new Item in the Menu
AddElement(RecentFiles.s())
RecentFiles.s() = "Item " + Str(ListSize(RecentFiles.s() ))
BuildMenu()
EndProcedure
Procedure ClearSubMenu() ;Delets all Items
ClearList(RecentFiles.s())
BuildMenu()
EndProcedure
Procedure OpenWindow_0(x = 0, y = 0, width = 520, height = 190)
Window_0 = OpenWindow(#PB_Any, x, y, width, height, "", #PB_Window_SystemMenu)
Button_Clear = ButtonGadget(#PB_Any, 130, 70, 70, 25, "Clear")
Button_fill = ButtonGadget(#PB_Any, 250, 70, 70, 25, "fill")
BuildMenu()
EndProcedure
Procedure Window_0_Events(event)
Select event
Case #PB_Event_CloseWindow
ProcedureReturn #False
Case #PB_Event_Menu
Select EventMenu()
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case Button_Clear
ClearSubMenu()
Case Button_fill
FillSubMenu()
EndSelect
EndSelect
ProcedureReturn #True
EndProcedure
OpenWindow_0()
Repeat
event = WaitWindowEvent()
Until Window_0_Events(event) = #False
End


