Tedy, z příspěvku mi není zcela jasné, oč Vám jde primárně: zda o to, aby chování bylo symetrické pro změnu hodnoty parametru přímo na řádce i v jeho podmenu, anebo o to, aby hodnoty šlo ve všech případech měnit ???kolem dokola???. V každém případě kód pro změnu hodnot momentálně vypadá takto:
K_CtrlWheelUp,
K_CtrlUArr: if CurrentItemPtr^.Accessible then
CurrentItemPtr^.DecVal
else
BadKeyBell;
K_CtrlWheelDn,
K_CtrlDArr: if CurrentItemPtr^.Accessible then
CurrentItemPtr^.IncVal
else
BadKeyBell;
K_CtrlPgUp: if CurrentItemPtr^.Accessible then
CurrentItemPtr^.SetMinVal
else
BadKeyBell;
K_CtrlPgDn: if CurrentItemPtr^.Accessible then
CurrentItemPtr^.SetMaxVal
else
BadKeyBell;
Ctrl-šipky tedy mají zcela stejnou funkci jako Ctrl-kolečko.
Matně si vzpomínám, že kdysi byla funkce šipek a kolečka oddělena; vycházelo se z toho, že když uživatel vidí, že je např. na poslední položce v menu, a stiskne šipku dolů, zřejmě ví, co chce, tj. dostat se na první položku ??? zatímco kolečkem myši prostě některým směrem zatočí (často i o několik položek, aniž by je počítal) a dívá se, co to udělá. Kdyby pro kolečko myši neexistovala ???zarážka??? v krajních polohách a uživatel by přeskakoval na opačný konec menu, působilo by to zmatek.
Pak se ukázalo, že zmatek není tak hrozný, a chování kolečka jsem sjednotil se šipkami. Zůstalo ale v kódu pro přímou změnu hodnoty; tam přitom navíc lze krajních hodnot dosáhnout i explicitně, klávesami Ctrl-PgUp a Ctrl-PgDn. Změnit tam chování na ???kolem dokola??? (v metodách IncVal a DecVal) by nijak obtížné nebylo, jen by bylo nutno rozmyslet a ověřit, zda někdo něčím třeba i implicitně nespoléhá na to dosavadní. Koneckonců by pro nové chování mohl také existovat přepínač.