Only widgets visible on the screen can have focus (therefore setting it in the constructor cannot work).
However, each TopWindow remembers the "focused child" and when it gets activated, places (restores) actual focus to it. Note that the main purpose of this is to maintain the expexted user experience.
You can change this "focused child" by calling TopWindow's ActiveFocus with child as parameter. If TopWindows is active ("foreground"), child gets focus immediately, otherwise it gets in once TopWindow gets active.