AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Fenster Vordergrund erzwingen funktioniert nicht immer
Thema durchsuchen
Ansicht
Themen-Optionen

Fenster Vordergrund erzwingen funktioniert nicht immer

Ein Thema von stalkingwolf · begonnen am 15. Apr 2020 · letzter Beitrag vom 22. Apr 2020
Antwort Antwort
stalkingwolf

Registriert seit: 6. Mai 2011
543 Beiträge
 
#1

Fenster Vordergrund erzwingen funktioniert nicht immer

  Alt 15. Apr 2020, 11:06
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Fenster Vordergrund erzwingen funktioniert nicht immer

  Alt 15. Apr 2020, 11:51
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
$2B or not $2B

Geändert von himitsu (15. Apr 2020 um 13:54 Uhr)
  Mit Zitat antworten Zitat
Andreas L.

Registriert seit: 23. Mai 2011
Ort: Furth im Wald
308 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Fenster Vordergrund erzwingen funktioniert nicht immer

  Alt 15. Apr 2020, 13:29
Vielleicht hilft dir FormStyle := fsStayOnTop
Andreas Lauß
Blog
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
543 Beiträge
 
#4

AW: Fenster Vordergrund erzwingen funktioniert nicht immer

  Alt 16. Apr 2020, 11:43
Vielleicht hilft dir FormStyle := fsStayOnTop
Ne leider auch nicht.

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

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.
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.

Geändert von stalkingwolf (16. Apr 2020 um 11:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#5

AW: Fenster Vordergrund erzwingen funktioniert nicht immer

  Alt 16. Apr 2020, 12:11
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Fenster Vordergrund erzwingen funktioniert nicht immer

  Alt 16. Apr 2020, 12:21
Hallo,
hier wäre auch die verwendete Delphi-Version nützlich.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#7

AW: Fenster Vordergrund erzwingen funktioniert nicht immer

  Alt 16. Apr 2020, 12:28
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)
$2B or not $2B

Geändert von himitsu (16. Apr 2020 um 12:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#8

AW: Fenster Vordergrund erzwingen funktioniert nicht immer

  Alt 16. Apr 2020, 12:54
Form.PopupMode=pmEplicit
Das wird implizit schon durch Setzen von PopupParent gemacht.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
543 Beiträge
 
#9

AW: Fenster Vordergrund erzwingen funktioniert nicht immer

  Alt 16. Apr 2020, 13:37
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.
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
543 Beiträge
 
#10

AW: Fenster Vordergrund erzwingen funktioniert nicht immer

  Alt 22. Apr 2020, 09:20
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz