![]() |
AW: falsches Fenster im Vordergrund
Hi rokli
Eine Alternative (oder besser zwei) wäre: Height und widht von Form1 (oder visible/enabled) zB. im Onshow von Form2 auf null bzw. false stellen. Gruss Delbor |
AW: falsches Fenster im Vordergrund
Sorry aber soawas ist ein Murks. Er macht das schon richtig so wie er es macht. Das Problem ist ein Windows Fehlverhalten, das seit Vista oder sogar XP besteht. Das Ganze ist auch nicht so einfach zu reproduzieren. Wenn eine Anwendung länger beschäftigt ist und nicht auf Windwos reagiert, macht Windows irgend wie was am Modalverhalten und das kann dann zu diesem Effekt führen. In der Regel hilft es dann, eine andere Anwendung über die Taskbar zu aktivieren und dann wieder auf die eigene zurück zu wechseln. Dadurch erscheint im Normalfall wieder der richtige Modale Dialog zu oberst.
Ich bin mir nicht sicher, ob das ein Fehlverhalten von Delphi Programmen ist oder ob das eine altes Windows Fehlverhalten ist. Am eingenen Programmcode liegt es aber zu 100% nicht. |
AW: falsches Fenster im Vordergrund
Da würde ich eher die Mainform ausblenden (Visible := False) und nur einblenden, wenn sie wirklich benötigt wird.
Zitat:
Darauf basierend ein paar Überlegungen: - Ggf. Mainform.Enabled := False; setzen, solange im Form2 gearbeitet werden soll. Dann wären keine Eingaben im Mainform möglich, wie das dabei mit dem Fokus ist kann ich aktuell nicht testen, denke aber der Fokus kann dann auch nicht aufs Mainform gesetzt werden. - Ansonsten für die Zeit, wo Form2 da ist Mainform.Canfocus := False; setzen könnte helfen. - Wenn das nicht funktioniert kannst du nicht im Mainform, wenn es in den Vordergrund kommt UND Form2 angezeigt wird, den Wechsel in Form2 anstoßen (setfocus)? |
AW: falsches Fenster im Vordergrund
Zitat:
Hier nochmal die Erklärung: Zitat:
|
AW: falsches Fenster im Vordergrund
|
AW: falsches Fenster im Vordergrund
Ein freundliches Hallo an Alle!
Zitat:
Delphi-Quellcode:
Und keine Fehler mehr! Vielen Dank für alle Tipps und besonders an Mommbas für die klasse Idee!
procedure TfrmMain.bbtLagerClick(Sender: TObject);
begin p_ProtoWrite(''); p_ProtoWrite('starte Lager aus frmMain'); frmMain.Visible := false; frmLager.ShowModal; frmMain.Visible := true; end; Schönes Wochende! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:18 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 by Thomas Breitkreuz