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
NAMET / NEDOKONALOST - zmena stavu prepinace pres Ctrl+sipka
- Petr Horský
- Member
- Příspěvky: 620
- Registrován: úte čer 19, 2007 12:40 pm
- Bydliště: Praha
- Kontaktovat uživatele:
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:
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č.
Kód: Vybrat vše
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;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č.
- Tomáš Och
- Member
- Příspěvky: 394
- Registrován: úte čer 19, 2007 4:41 pm
- Bydliště: Papouch s.r.o., Praha
- Kontaktovat uživatele:
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).
- Petr Horský
- Member
- Příspěvky: 620
- Registrován: úte čer 19, 2007 12:40 pm
- Bydliště: Praha
- Kontaktovat uživatele:
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“.