Lieber Andy, Danke für deinen Hinweis, ich hab's jetzt ersteinmal dabei belassen, das MenuFenster als document-window auszulegen und nicht als Floating-Window. Das ist für mich auch völlig ausreichend. Allerdings, da scheint ja der Hase im Pfeffer zu liegen: Wenn von Fenster2 aus Fenster3 geöffnet wird, dann verliert Fenster2 den Fokus und gibt ihn ab an Fenster3. Wenn Fenster3 aber ein Floating-Window ist und nicht ein Document-Window, dann scheint der Fokus ins Leere zu zeigen und muss von einem der anderen Fenster aufgenommen werden (welches dann natürlich in den Vordergrund gebracht und neu gezeichnet wird). Fenster3 allerdings ist ebenfalls aktiv, weil es ein Floating Window ist. Und diese Zusammenhänge durchschaue ich eben nicht ganz. Die Frage müsste also lauten: Können ein Document-Window und ein Floating-Window gleichzeitig ativated sein? Hier könnte ein bug versteckt sein.
> noch nicht gesehen. Andererseits kannst Du das ja auch einfach umschiffen, > indem Du in Deinem Resized-Event prüfst, ob sich die Fenstergröße > tatsächlich geändert hat: > > if (gOldWidth <> w.width OR gOldHeight <> w.height) > AdjustWindowContents... > end if Ich hatte so etwas auch schon ausprobiert, allerdings würde ich noch härter 'ran gehen. Ich setze eine globale Variable 'stAktivesFenster' as String, in den activate-Eventhandler jedes Fensters schreibe ich: stAktivesFenster = "meinFensterName", im resized-Eventhandler jedes Fensters klammere ich den Code mit: if stAktivesFenster = "meinFensterName" then ... end if Die Idee dabei war, bestimmte gleichartige Aktionen in den einzelnen Fenstern mit einem globalen Code steuern zu können. Wenn jedes Fenster ein Control_A hat, dann wäre es praktisch in einem Modul schreiben zu können: stAktivesFenster.Control_A.visible =true Ganz so einfach geht das natürlich nicht. Man müsste schon schreiben: if stAktivesFenster ="Fenster1" then Fenster1.control_A.visible =true elseif stAktivesFenster ="Fenster2" then ... Es ist vielleicht naiv von mir, aber ist es möglich, die Variable stAktivesFenster nicht als String, sondern als Reverenz auf auf das Fenster zu deklarieren, der globalen Routine diese Reverenz als Parameter zu übergeben und so mit nur einer Code-Zeile auszukommen?: ReverenzDesFensters.Control_A.visible =true bestens, Christian Hahn.
