1

Téma: NAMET / NEDOKONALOST - zmena stavu prepinace pres Ctrl+sipka

Pokud chci prepnout nastaveni prepinace, aniz bych chtel rozklikavat seznam, udelam to pomoci ctrl+sipka dolu (v makru <Ctrl-DArr>). Ale zatimco po rozkliknuti polozek prepinace umozni z posledni polozky prejit na prvni polozku sipkou dolu (a opacne), bez rozkliknuti seznamu to nelze. A to je problem v pripade, ze mam nastaveno, ze polozky prepinace lze rozkliknout az od urciteho jejich poctu(*).

To tudiz v zavislosti na zminenem nastaveni muze makru prakticky znemoznit, aby jedna klavesova zkratka prepinala stav nejakeho prepinace jeden po druhem porad dokola v pripade, ze nema prepinac dostatek polozek, aby se jiz daly rozkliknout.



Teoreticky to lze resit tak, ze uplne kazde makro, ktere pracuje s nejakym prepinacem si ulozilo do clipboardu windows hranici (*), pak hranici zmenilo, prikaz vykonalo a nastaveni vratilo na puvodni hodnotu. Ale realne je to tak komplikovane...


____________________________________________________________________________
*)v menu je to nastaveni Options - Menu System & Sound - Choice Treshold

2

Re: NAMET / NEDOKONALOST - zmena stavu prepinace pres Ctrl+sipka

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č.

3

Re: NAMET / NEDOKONALOST - zmena stavu prepinace pres Ctrl+sipka

Ano, vzhledem k tomu, ze nastaveni hranice pro zobrazeni podmenu omezuje moznosti, ktere by omezovat nemel, bylo by dobre sjednotit chovani zmeny nastaveni na radce i v podmenu. Ohledne chovani pro kolecko mysi - i kdyz to je mozna svym zpusobem nekonzistence, tam jsem naopak zastancem zachovani "zarazek". Zde se nepredpoklada ovladani makrem a pri ovladani uzivatelem rucne ta "zarazka" spise pomuze (ano, mam velmi matny dojem, ze jsme kdysi davno neco kolem zarazek pro kolecko resili a cas mi ukazal, ze zarazky jsou pro kolecko lepsi).

4

Re: NAMET / NEDOKONALOST - zmena stavu prepinace pres Ctrl+sipka

Zde je verze s diskutovanými změnami: http://www.formica.cz/files/Layout-441-p109-1117.zip .  Změny týkající se kolečka je možno povolit v menu Options / Menu System & Sound; kvůli symetrii je tam odděleno nastavení pro menu, výčtové parametry a numerické parametry.  Chování kolečka lze tedy nastavit i tak, aby přesně odpovídalo dosavadnímu; oproti tomu šipky teď vždy běží ???kolem dokola???.