none
Chyba ve Windows 8.1 s aktualizací 3153199 + Windows 10 (testovací build)

    Dotaz

  • Ahoj,

    pro programování sice používám Delphi, ale ve Visual Studiu se mi podařilo následující problém nasimulovat taky, proto se obracím i na vás s následujícím problémem, který se vyskytl ve Windows 8.1 s nainstalovanou aktualizací číslo 3153199 a následně jsem zjistil divné chování i ve Windows 10 od buildu 14342.rs1_release.160516-1708:

    1) jsou vytvořeny dva (prázdné) formuláře
    2) je zobrazen Form1 (Screen.ActiveForm = Form1)
    3) z Form1.FormActivate (ve Visual Studiu je to v události Form1.Activated) je zavolán Form2.ShowModal (ve Visual Studiu je to v události Form1.ShowDialog())
    4) po uzavření Form2 stále zůstává Screen.ActiveForm nastaven na Form2, čili se Focus se nevrátí na Form1 (formulář Form1 není aktivní).

    Setkal se už někdo s podobným problémem. Projevuje se to od minulého týdne, v ostatních OS (W7, WXP, W10) se podobný problém nevyskytuje.

    Původní chování bylo takové, že po zavčení Form2 došlo k aktivaci Form1 (bez vyvolání události FormActivate(d)) pomocí funkce SetActiveWindow() z knihovny user32.dll, která z nějakého důvodu přestala chodit. Pod Delphi jsem si vyzkoušel, že pokud ve Form1.Activate zavolám nějaký MessageBox, tak se taky na Form1 focus nevrátí.

    Nechci moc polemizovat o tom, jestli volat jeden formulář z jiného ve FormActivate, spíš se mi jedná o to, zda existuje řešení uvedeného problému kromě odinstalace uvedené aktualizace. Používám RAD2007 Pro (pro testování Visual Studio 2015).

    Děkuji. Honza.

    24. května 2016 19:06