Autor Téma: Pri stlačení "ALT" - Cannot focus a disabled or invisible window  (Přečteno 369 krát)

Online Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4182
  • Karma: 37
    • Verze Delphi: XE7 professional
Pri prvom stlačení ALT v edit komponente dostanem daný oznam. Aj to nie vždy.
Mám použitú jedinú udalosť OnKeyPress, kde sa samozrejme ani nedostanem. Po uzatvorení okna s oznamom beží program bez problémov. Podľa všetkého sa už ten problém neobjavuje. Neviem čo je tomu príčina.
Všimol som si, náhodne, že sa focus prepne na hlavné menu (TAdvMainMenu) formulára. Všetko je tam Disable, ale focus to prijme. To je ovšem nežiaduce a neviem to potlačiť.
Ako sa tie problémy dajú vyriešiť?
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Online Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4182
  • Karma: 37
    • Verze Delphi: XE7 professional
Re:Pri stlačení "ALT" - Cannot focus a disabled or invisible window
« Odpověď #1 kdy: 17-04-2019, 09:30:08 »
Dodávam, že v menu nemám definovaný žiaden hotkey
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Online Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2274
  • Karma: 101
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Pri stlačení "ALT" - Cannot focus a disabled or invisible window
« Odpověď #2 kdy: 17-04-2019, 10:38:17 »
Zapni si ladici informace, a nastav uses debug dcu v options a ukaz call stack
Embarcadero MVP - Czech republic

Online Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4182
  • Karma: 37
    • Verze Delphi: XE7 professional
Re:Pri stlačení "ALT" - Cannot focus a disabled or invisible window
« Odpověď #3 kdy: 17-04-2019, 11:00:28 »
Akosi to neviem urobiť. Viď obrázok.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Online Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2274
  • Karma: 101
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Pri stlačení "ALT" - Cannot focus a disabled or invisible window
« Odpověď #4 kdy: 17-04-2019, 12:52:40 »
viz screenshot, project Options ne Options, sorry za neuplny navod
Embarcadero MVP - Czech republic

Online Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4182
  • Karma: 37
    • Verze Delphi: XE7 professional
Re:Pri stlačení "ALT" - Cannot focus a disabled or invisible window
« Odpověď #5 kdy: 17-04-2019, 15:01:03 »
Aj mi došlo, že máš na mysli asi toto. Mám to tak nastavené. Len ako ukážem call stack?
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Online Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2274
  • Karma: 101
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Pri stlačení "ALT" - Cannot focus a disabled or invisible window
« Odpověď #6 kdy: 17-04-2019, 22:26:50 »
Aj mi došlo, že máš na mysli asi toto. Mám to tak nastavené. Len ako ukážem call stack?

při vyjímce das break, nebo kdykoliv kdyz krokujes program, a vlevo je okno call stack - jinak pres debug windows - call stack
Embarcadero MVP - Czech republic

Offline Delfin

  • Padawan
  • ******
  • Příspěvků: 1744
  • Karma: 67
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Pri stlačení "ALT" - Cannot focus a disabled or invisible window
« Odpověď #7 kdy: 17-04-2019, 23:11:17 »
Neznam podrobnosti, ale pokud me pamet neklame (hafo davno), slo u TMS o ignoraci rozliseni kontextu zpravy WM_SYSKEYDOWN (kdy si TMS komponenta edit boxu nastavovala v jiste konstelaci formulare sama sobe focus jenz mit v dane dobe nemohla). Ale to uz je hodne davno a dost mozna se pletu.

Jinak ono to zruseni focusu menu baru asi nebude az take lahke (z pohledu cisteho reseni)...
« Poslední změna: 17-04-2019, 23:13:01 od Delfin »
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Online Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4182
  • Karma: 37
    • Verze Delphi: XE7 professional
Re:Pri stlačení "ALT" - Cannot focus a disabled or invisible window
« Odpověď #8 kdy: 18-04-2019, 07:05:25 »
Citace
slo u TMS o ignoraci rozliseni kontextu zpravy WM_SYSKEYDOWN (kdy si TMS komponenta edit boxu nastavovala v jiste konstelaci formulare sama sobe focus jenz mit v dane dobe nemohla)
Medzitým som zistil, že pracujem s iným objektom než mám. Len sa mi ešte nepodarilo zistiť prečo sa mení. Ale už aspoň viem kde sa to deje.
Citace
Jinak ono to zruseni focusu menu baru asi nebude az take lahke (z pohledu cisteho reseni)...
Ak sa mi nebude dariť, tak to TMSMainMenu v najhoršom prípade vymením za niečo iné.
Mňa najviac prekvapuje, prečo program vôbec reaguje na stlačenie "ALT" ::)
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2503
  • Karma: 131
    • Verze Delphi: D2007, XE3, DX10
Re:Pri stlačení "ALT" - Cannot focus a disabled or invisible window
« Odpověď #9 kdy: 18-04-2019, 08:10:23 »
Mňa najviac prekvapuje, prečo program vôbec reaguje na stlačenie "ALT" ::)
No protoze je to uz docela dlouho standard, jak ovladat program z klavesnice bez mysi. V drevnich dobach se do main menu pristupovalo pres ruzne variace na F10, dodnes stejne jako Alt funguje Ctrl+F10 a Shift+F10 na pop-up menu

Online Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 4182
  • Karma: 37
    • Verze Delphi: XE7 professional
Re:Pri stlačení "ALT" - Cannot focus a disabled or invisible window
« Odpověď #10 kdy: 19-04-2019, 08:16:00 »
Ja som si myslel, že udalosť nastane až po zadaní celej skratky ALT + niečo. Nielen ALT.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Online Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2274
  • Karma: 101
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (Tokyo)
    • O Delphi v češtině
Re:Pri stlačení "ALT" - Cannot focus a disabled or invisible window
« Odpověď #11 kdy: 19-04-2019, 17:48:50 »
Ja som si myslel, že udalosť nastane až po zadaní celej skratky ALT + niečo. Nielen ALT.

kdyz zmacknes ALT, tak se zobrazi akceleratory, tj. podtzitka
Embarcadero MVP - Czech republic

Offline Delfin

  • Padawan
  • ******
  • Příspěvků: 1744
  • Karma: 67
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Pri stlačení "ALT" - Cannot focus a disabled or invisible window
« Odpověď #12 kdy: 19-04-2019, 20:13:13 »
Ja som si myslel, že udalosť nastane až po zadaní celej skratky ALT + niečo. Nielen ALT.

To by slo o klavesovou zkratku (Menu Shortcut Keys). Menu vsak (jak jiz bylo zmineno) se daji ovladat jen pomoci klavesnice (navigace kurzorovymi klavesami) a tzv. access keys (Menu Access Keys).

Predani focus menu baru pripadne menu okna (systemovemu menu) ma tedy smysl. To, ze se predava focus menu baru, kde jsou vsechny polozky disablovane je chyba UX a odstranit ji cistym zpusobem nelze.
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Offline Delfin

  • Padawan
  • ******
  • Příspěvků: 1744
  • Karma: 67
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Pri stlačení "ALT" - Cannot focus a disabled or invisible window
« Odpověď #13 kdy: 19-04-2019, 22:27:19 »
kdyz zmacknes ALT, tak se zobrazi akceleratory, tj. podtzitka

Akcelerator je v terminech MS klavesova zkratka (Keyboard Accelerators).
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Offline Delfin

  • Padawan
  • ******
  • Příspěvků: 1744
  • Karma: 67
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Pri stlačení "ALT" - Cannot focus a disabled or invisible window
« Odpověď #14 kdy: 21-04-2019, 03:51:10 »
Tedy pro sjednoceni nazvoslovi (cesky uz pomalu neumim, tak me prosim omluvte pokud je jiz v minulosti nekdo ustanovil jinak):

- klavesova zkratka - vzhledem k menu jde o tzv. shortcut key, nicmene ke klavesove zkratce (ve Windows) neni treba menu; staci tzv. keyboard accelerator (i pro jine komponenty)
- pristupova klavesa - jde o menu access klavesy, jenz je mozne vyuzit k navigaci menu, jenz funguji v pripade kdy ma menu focus a existuji jen v pripade vyvolani menu (navigacni klavesy jsou vychozim zpusobem zvyrazneny jako podtrzena pismena polozek menu uvozenych znakem &)

Graficky pak v menu (jsem ted liny kreslit):

pristupova klavesa "M"   ↓ klavesova zkratka CTRL+M
------------------------------------------------------
Menu item                   CTRL+M
------------------------------------------------------
« Poslední změna: 21-04-2019, 04:18:01 od Delfin »
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!