Forum Delphi.cz

Delphi => Obecné => Téma založeno: Trooper68 14-03-2021, 23:08:39

Název: Zavírání okna escapem
Přispěvatel: Trooper68 14-03-2021, 23:08:39
Dobrý den, potřeboval bych poradit (dělám jen takové to "domácí programování") :
Z hlavního formu otvírám přes button form2.show (form2 je vytvořen v návrháři - nevytvářím ho za běhu), ve kterém pomocí OnKeyDown odchytávám kód 27 - escape a zavírám okno příkazem close.
Mám v tomto formu nastaveno Keypreview abych odchytával klávesnici ikdyž má focus jiná komponenta. Otevřu, zavřu escape, otevřu, zavřu escape = vše je ok.
Pokud ale dám na form2 komponentu webbrowser, kde pomocí navigate zobrazím nějaký obsah a okno otevřu, tak se mi pomocí escape podaří zavřít jen na poprvé. Při znovuotevření form2 už to klávesnici neodchytává... ??? Zavírání stále funguje, pokud v browseru nenechám nic zobrazit. Umí mi někdo poradit, jak to zprovoznit i s obsahem ve webbrowseru ?
Děkuji
Název: Re:Zavírání okna escapem
Přispěvatel: cadsky 15-03-2021, 08:24:54
Zkus odchytávat na úrovni
procedure CMDialogKey(var Message: TCMDialogKey); message CM_DIALOGKEY;
nebo
použít komponentu ApplicationEvents, vlastnost OnShortCut
Název: Re:Zavírání okna escapem
Přispěvatel: Trooper68 15-03-2021, 09:19:27
Tak odchytávání CMDialogKey fuguje!  Děkuji!
Název: Re:Zavírání okna escapem
Přispěvatel: František 16-03-2021, 01:37:33
alebo zapnúť KeyPreview na konkrétnom forme
Název: Re:Zavírání okna escapem
Přispěvatel: Jan Fiala 16-03-2021, 12:04:29
Nebo pokud se pouziva ActionList, tak akci priradit ESC
Nebo pokud se pouziva MainMenu, tak priradit ESC pro item, ktera ukoncuje okno
atd.
Moznosti je spousta
Název: Re:Zavírání okna escapem
Přispěvatel: Trooper68 17-03-2021, 13:32:56
František: Jak jsem psal - Keypreview jsem měl zaplé.

A ať neumřu úplně blbej, proč to bez zobrazení obsahu ve webbrowseru funguje a s obsahem ne ?
Název: Re:Zavírání okna escapem
Přispěvatel: cadsky 18-03-2021, 15:22:21
WebBrowser pravděpodobně odchytne klávesu pokud má nějaký obsah.