Discussion:
Fensterbedeckung
(zu alt für eine Antwort)
Manfred Polak
2018-07-31 12:48:57 UTC
Permalink
Moin!

Ich habe bisher die Starter Edition von 10.2 benutzt und bin jetzt auf
die Community Edition umgestiegen. Als ersten Test wollte ich ein
kleines Primzahlprogramm (VCL) jetzt auch mit 64 Bit kompilieren.
Hat auch soweit geklappt, aber ein Problem hat sich gezeigt.

Das Programm hat zwei Fenster. Form2 wird von Form1 aus per
Button oder Tastatur gestartet, indem Form2.Show aufgerufen wird.
Dann kann man zwischen den Fenstern beliebig wechseln, so dass
das eine oder das andere im Vordergrund ist. So war das bisher.
Aber bei der mit der Community Edition kompilierten Fassung (egal
ob mit 32 oder 64 Bit) ist Form2, sobald es erst mal angezeigt wird,
immer vor Form1, auch wenn Form1 den Focus hat. Auch mit Klick
auf die Titelleiste kann man Form1 nicht mehr in den Vordergrund
holen. Der FormStyle ist bei beiden Fenstern fsNormal.

Ein Test mit einem neuen Projekt mit zwei Forms, die bis auf einen
Button völlig nackt sind, zeigt dasselbe Verhalten. Ist das so gewollt,
oder ist das ein Bug? Ich möchte jedenfalls wieder das alte Verhalten.
Wer es sich selbst ansehen will, das Primzahlprogramm ist hier:

http://home.mnet-online.de/polak/Primibus/

Die 32-Bit-Version ist mit der Starter Edition kompiliert und verhält
sich so, wie sie soll, die 64-Bit-Version zeigt das Problem.


Manfred
Peter Below
2018-08-01 06:06:42 UTC
Permalink
Post by Manfred Polak
Moin!
Ich habe bisher die Starter Edition von 10.2 benutzt und bin jetzt auf
die Community Edition umgestiegen. Als ersten Test wollte ich ein
kleines Primzahlprogramm (VCL) jetzt auch mit 64 Bit kompilieren.
Hat auch soweit geklappt, aber ein Problem hat sich gezeigt.
Das Programm hat zwei Fenster. Form2 wird von Form1 aus per
Button oder Tastatur gestartet, indem Form2.Show aufgerufen wird.
Dann kann man zwischen den Fenstern beliebig wechseln, so dass
das eine oder das andere im Vordergrund ist. So war das bisher.
Aber bei der mit der Community Edition kompilierten Fassung (egal
ob mit 32 oder 64 Bit) ist Form2, sobald es erst mal angezeigt wird,
immer vor Form1, auch wenn Form1 den Focus hat. Auch mit Klick
auf die Titelleiste kann man Form1 nicht mehr in den Vordergrund
holen. Der FormStyle ist bei beiden Fenstern fsNormal.
Ein Test mit einem neuen Projekt mit zwei Forms, die bis auf einen
Button völlig nackt sind, zeigt dasselbe Verhalten. Ist das so
gewollt, oder ist das ein Bug? Ich möchte jedenfalls wieder das alte
Verhalten. Wer es sich selbst ansehen will, das Primzahlprogramm ist
http://home.mnet-online.de/polak/Primibus/
Die 32-Bit-Version ist mit der Starter Edition kompiliert und verhält
sich so, wie sie soll, die 64-Bit-Version zeigt das Problem.
Manfred
Deine Starter-edition ist vermutlich schon etwas älter, oder?
So etwa zum Beginn der Windows 7 Area gab es eine kleine Änderung in
der VCL, um Probleme mit dem Aero-Desktop und seinem Taskbar zu lösen.
Vorher waren alle Forms in der Z-Ordnung auf der gleichen Ebene
(siblings) und ihr Elter auf der API-Ebene war das Application.Handle,
ein Fenster mit 0 pixeln Breite und Höhe, dem auch der Taskbar Button
des Programms gehörte. Das gab nette Effekte mit der Vorschau-Funktion
des Taskbars in Win7.

Daher ist nun das Mainform der Elter aller anderen Forms bezüglich der
Z-Ordnung, und der Taskbar-Button gehört jetzt zum Mainform. Das kann
man aber ändern:

Im DPr-File des Projectes sollte es eine Zeile

Application.MainWindowOnTaskbar := true;

geben. Setzt das auf false und Du hast das alte Verhalten wieder, mit
all seinen problemen:
--
Peter Below
TeamB
Manfred Polak
2018-08-01 12:42:34 UTC
Permalink
Post by Peter Below
Deine Starter-edition ist vermutlich schon etwas älter, oder?
Ja.
Post by Peter Below
Daher ist nun das Mainform der Elter aller anderen Forms bezüglich der
Z-Ordnung, und der Taskbar-Button gehört jetzt zum Mainform. Das kann
Im DPr-File des Projectes sollte es eine Zeile
Application.MainWindowOnTaskbar := true;
geben. Setzt das auf false und Du hast das alte Verhalten wieder, mit
Danke, hat funktioniert. Da ich den klassischen Desktop verwende, sind
mir die Probleme mit Aero nie aufgefallen. Werde ich mir mal mit Aero
ansehen, und dann kann ich ja in jedem Einzelfall entscheiden, wie ich
es haben will.


Manfred

Loading...