LOCAL nBarCount, retVal, oForm, macSubString, oTextBox, cFieldList, cFromTables, cUnionText, ; cWhereClause, cOrderBy, cDisplayField, popupCount, popupname, barsPerColumn, totCounter, myValField retVal = "" totCounter = 1 barsPerColumn = 25 popupCount = 0 popupName = "shortcut" nBarCount = 0 wait window "Gathering List..." nowait noclear create cursor menuSource ( menuLabel C(50), menuAction C(50) ) for x = 1 to 100 insert into menuSource( menuLabel, menuAction) values( alltrim(str(x)), "messagebox('" + alltrim(str(x)) + "')" ) endfor DEFINE POPUP shortcut SHORTCUT RELATIVE FROM MROW(),MCOL() select menuSource go top in menuSource scan totCounter = totCounter + 1 if int((totCounter + popupCount) / barsPerColumn) <> popupCount popupCount = popupCount + 1 oldpopupname = popupname popupName = "shortcut" + iif(popupCount > 0, alltrim(str(popupCount)), "") DEFINE BAR barsPerColumn OF &oldpopupname PROMPT "More Options..." DEFINE POPUP &popupName SHORTCUT RELATIVE ON BAR barsPerColumn OF &oldpopupname ACTIVATE POPUP &popupName AT MROW(), MCOL() endif nBarCount = ((totCounter + iif(popupCount > 0, popupCount - 1, popupCount)) % barsPerColumn) + ; iif(popupCount > 0, 1, popupCount) DEFINE BAR nBarCount OF &popupName PROMPT alltrim(menuSource.menuLabel) ON SELECTION BAR nBarCount OF &popupName &macSubString endscan ACTIVATE POPUP shortcut>>Hi Ali,