Sorting a Popup menu with RowTags

Imagine you want to load a popup menu with the name of the files from a given folder, the user will later select an entry from that popup menu to load that file thanks to the file info we will store in the popup menu rowtag property. Now what if we want to sort the popup menu alphabetically?

The solution is to load the data into a couple of arrays, sort those arrays together and then load the result into the popup menu. Given ‘f’ is the folder we want to display the items of, this is the code:

Dim aData, aListName(), aListFile() As String

For i As Integer = 1 to f.count()
  f = f.Child( f.item(i).Name )
  aListName.Append( f.item(i).Name )
  aListFile.Append( f.item(i).GetSaveInfo( Volume(0) ) )
next i

aListName.SortWith( aListFile )
For i As Integer = 0 to aListName.Ubound
  myPopup.Addrow( aListName(i) )
  myPopup.RowTag( myPopup.ListCount - 1 ) = aListFile(i)
Next i

We create two arrays, load them with the folder items data, sort both arrays together by file name and load the popup menu with the result. If you run the code you will see the popup menu displays all the file names properly sorted alphabetically and rowtag contain the right file info.

There are more examples here.


Stan Busk – Software Engineer
at www.maxprog.com

Leave a Reply