Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Fenster Vordergrund erzwingen funktioniert nicht immer (https://www.delphipraxis.net/204011-fenster-vordergrund-erzwingen-funktioniert-nicht-immer.html)

stalkingwolf 15. Apr 2020 10:06

Fenster Vordergrund erzwingen funktioniert nicht immer
 
Wenn ich ein Fenster mit .show öffne aber möchte das es dennoch als oberstes Fenster angezeigt wird, dann funktioniert es mal und mal nicht.
Scheinbar abhängig von der Betriebsysten Version von Windows.

z.b mit
Code:
ffenster.show;
ffenster.BringToFront;
Windows 7 funktioniert dies immer. Unter Windows 10 nur beim ersten mal, danach kann es sein das Windows doch das Fenster nach hinten legt, wenn ich auf das Fenster dahinter klicke.

Wie ist hier der beste Weg?

himitsu 15. Apr 2020 10:51

AW: Fenster Vordergrund erzwingen funktioniert nicht immer
 
Liegt daran, dass der Benutzer die Hoheit hat, darüber was er machen will.
Deswegen wird Programmen im Hintergrund erstmal verboten sich selbst in den Vordergrund zu bringen.

https://www.delphipraxis.net/203758-...ml#post1460199

Andreas L. 15. Apr 2020 12:29

AW: Fenster Vordergrund erzwingen funktioniert nicht immer
 
Vielleicht hilft dir FormStyle := fsStayOnTop

stalkingwolf 16. Apr 2020 10:43

AW: Fenster Vordergrund erzwingen funktioniert nicht immer
 
Zitat:

Zitat von Andreas L. (Beitrag 1462120)
Vielleicht hilft dir FormStyle := fsStayOnTop

Ne leider auch nicht.

Zitat:

Zitat von himitsu (Beitrag 1462106)
Liegt daran, dass der Benutzer die Hoheit hat, darüber was er machen will.

Und mich fragen die Kunden warum das Fenster nicht vorne bleibt :-D

Das Problem ist das viele Kunden noch mit so kleinen Bildschirmen arbeiten oder 21-22" Full HD und erkennen nichts drauf und vergrößern alles.
Aber dann wollen sie alle Informationen auf einmal sehen. :roll:
Das ganze hat auf Win7 ( 8 weiß ich nicht ) ganz gut funktioniert. Mittlerweile haben/mussten viele auf 10 wechseln und dort funktioniert das nicht mehr so ganz.

btw. wegen dem anderen Thread. Ging es dort um verschiedene Applikationen?
Weil ich spreche von der gleichen Applikation aber 2 Fenstern. Dem Hauptfenster was im Fullscreen läuft und einem weiteren Fenster was nicht modal sein soll, aber weiterhin im Vordergrund sichtbar sein soll, falls der Anwender auf das Hauptfenster klickt.

Uwe Raabe 16. Apr 2020 11:11

AW: Fenster Vordergrund erzwingen funktioniert nicht immer
 
Dann setz doch mal neben dem FormStyle = fsStayOnTop auch das Property PopupParent auf dein HauptForm.

Falls das nichts nützt, wäre ein kleines Beispielprojekt hilfreich.

hoika 16. Apr 2020 11:21

AW: Fenster Vordergrund erzwingen funktioniert nicht immer
 
Hallo,
hier wäre auch die verwendete Delphi-Version nützlich.

himitsu 16. Apr 2020 11:28

AW: Fenster Vordergrund erzwingen funktioniert nicht immer
 
PopupParent hat nicht wirlich was mit StayOnTop zu tun.


ABER PopupParent und PopupMode steuern, wie dein Fenster im Verhältnis zu anderen Fenstern deiner Anwendung positioniert ist.

Form.PopupMode=pmEplicit und Form.PopupParent=DeineAndereForm und schon ist dieses Fenster immer vor/über DeineAndereForm, aber bleibt im Hintergrund, wenn man zu einer anderen Anwendung wechselt.


[edit]
Jupp, da hier auch ab und an bissl was im VCL-Code umgebaut wurde,
gibt es einen Unterschied im Verhalten bei gewissen älteren Delphi-Versionen (inkl. einiger Bugs/Fehlverhalten, die inzwischen behoben wurden)

Uwe Raabe 16. Apr 2020 11:54

AW: Fenster Vordergrund erzwingen funktioniert nicht immer
 
Zitat:

Zitat von himitsu (Beitrag 1462220)
Form.PopupMode=pmEplicit

Das wird implizit :) schon durch Setzen von PopupParent gemacht.

stalkingwolf 16. Apr 2020 12:37

AW: Fenster Vordergrund erzwingen funktioniert nicht immer
 
Für PopupParent ist meine Delphi Version zu alt in welcher das Programm entwickelt ist.
Aber ParentWindow auf das Handle vom Hauptfenster hat etwas gebracht.

Damit ist bei meinen Test unter Windows 10 das Fenster immer im Vordergrund meiner Applikation, auch wenn ich wieder auf das Hauptfenster klicke.

stalkingwolf 22. Apr 2020 08:20

AW: Fenster Vordergrund erzwingen funktioniert nicht immer
 
Ok die Änderung mit dem parentWindow war ein Schuss in den Ofen.
Danach kann man die Eingabefelder nicht mehr anklicken.
Man kann zwar per Tab durchspringen und auch den Inhalt verändern, aber nicht mehr manuell in das Feld klicken.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz