Aktivace ovládacího prvku (GotFocus) - jak zjistit, zda k události došlo od klávesnice nebo myši
Potřebuji (konkrétně ve FoxPro) zjistit, zda ovládací prvek získal focus od klávesnice (šipka, tabulátor) nebo zda byl vybrán myší (místo GotFocus by se případně dala využít ještě událost When). Je to prkotina, ale už se s tím drbu druhej den - dokaže někdo poradit? Dík
Obavam se, ze na urovni udalosti Focus to nezjistis. Zkus si zapamatovat, zda jsi predtim stiskl klavesu nebo mys a podle toho se rozhodnout.
Pro Foxku mě napadá jedině krkolomné řešení. V MouseDown Event udělat třeba:
V KeyPress Event:
A v GotFocus Event to testovat:
Avšak nemám už Foxku nainstalovanou, tak si nejsem jistý, jestli náhodou GotFocus nevypukne dřív, než MouseDown nebo KeyPress. Pak bych teda do MouseDown a KeyPress doplnil volání nějaké společné metody, co by to dokončila až tady, místo v GotFocus.
V C nebo Delphi by asi šlo jednoduše odlovit zprávu pro ovládací prvek.
A napadlo ta ze focus moze vzniknut aj inac? Napr sa zavrie ina aplikacia na popredi a focus dostane aplikacia (FoxPro) na pozadi apod. Ak chces testovat mys alebo klavesnicu tak sa to robi v prislusnych eventoch pre mys alebo klavesnicu. Ak sa ma nieco urobit ked prvok dostane focus tak to nemoze zavisiet od priciny focusu, ptz ten focus to moze dostat v multitaskingovom oknovom OS z mnohych roznych pricin o ktorych okrem MS nikto nema ani potuchy (ked som tak obcas sledoval spravanie focusu vo Win po zavreti nejakeho okna apod, tak som mal fakt dost )