AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi falsches Fenster im Vordergrund

falsches Fenster im Vordergrund

Ein Thema von rokli · begonnen am 11. Nov 2019 · letzter Beitrag vom 6. Dez 2019
Antwort Antwort
Seite 2 von 2     12
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: falsches Fenster im Vordergrund

  Alt 13. Nov 2019, 09:44
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
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
644 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: falsches Fenster im Vordergrund

  Alt 13. Nov 2019, 12:59
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.
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#13

AW: falsches Fenster im Vordergrund

  Alt 13. Nov 2019, 13:21
Da würde ich eher die Mainform ausblenden (Visible := False) und nur einblenden, wenn sie wirklich benötigt wird.

Irgend wann wechseln dann die Fenster und die MainForm ist auf dem Bildschirm das "obere" Fenster, und das modale Fenster liegt dadrunter. Die MainForm kann und will ich dann natürlich nicht bedienen, da ich ja Form2 Modal geöffnet habe. Ein Klick auf die Form2 und es ist wieder so, wie es sein soll.
Das hört sich für mich an, als ob den Mainform zwischendurch den Fokus erhält und dadurch in den Vordergrund kommt.
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)?
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
DasWolf

Registriert seit: 7. Jun 2016
76 Beiträge
 
Delphi 10.1 Berlin Professional
 
#14

AW: falsches Fenster im Vordergrund

  Alt 13. Nov 2019, 14:21
- 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.
Durch das modale anzeigen von Form2 ist sowieso keine Eingabe in Form1 möglich. Wozu dann noch soviel Käse im Code unterbringen?

Hier nochmal die Erklärung:

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.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: falsches Fenster im Vordergrund

  Alt 13. Nov 2019, 17:50
Eventuell hilft eine passende Einstellung von Form2.PopupMode und/oder Application.ModalPopupMode.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
301 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: falsches Fenster im Vordergrund

  Alt 6. Dez 2019, 15:07
Ein freundliches Hallo an Alle!

Da würde ich eher die Main
form ausblenden (Visible := False) und nur einblenden, wenn sie wirklich benötigt wird.
Häufig ist das Einfache einfach auch das einfachste! Seit gut 2 Wochen hab ich die Idee von Moombas verbaut: Wenn die Form2 aufgerufen wird, setze ich die MainForm auf Visible = false, und wenn das Fenster wieder geschlossen wird, setze ich die MainForm.Visible := true! Fertig!

Delphi-Quellcode:
procedure TfrmMain.bbtLagerClick(Sender: TObject);
begin
   p_ProtoWrite('');
   p_ProtoWrite('starte Lager aus frmMain');
   frmMain.Visible            := false;
   frmLager.ShowModal;
   frmMain.Visible            := true;
end;
Und keine Fehler mehr! Vielen Dank für alle Tipps und besonders an Mommbas für die klasse Idee!

Schönes Wochende!
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:16 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