![]() |
Zweitfenster immer vor Hauptfenster - aber kein ShowModal
Hallo,
ich habe ein Hauptfenster und ein zweites, das eine Warteanzeige darstellt. Bei starten eines längeren Vorgangs soll das Zweitfenster geöffnet und nach Fertigstellen automatisch wieder geschlossen werden. Während dieser Zeit soll es den Fokus nicht an das Hauptfenster verlieren, also wie bei ShowModal. Nur kann ich ShowModal nicht verwenden, da das Programm sonst so lange wartet, bis das Zweitfenster geschlossen ist. Gibt es vielleicht eine andere Möglichkeit, um das Zweitfenster vorne zu halten? Oder kurz: Ich brauche ein ShowModal, das das Programm nicht aufhält. ;-) Danke, ManuMF |
Re: Zweitfenster immer vor Hauptfenster - aber kein ShowModa
showmodal bedeutet ja
Delphi-Quellcode:
Du kannst das enabled ja auch selbst auf false setzten. Andernfalls könntest du on form1.activate form2.bringtofront machen.
form2.show;
form1.enabled:=false; Du könntest das form1 auch einfach damit davon abhalten den Fokus zu erhalten indem du es versteckst:
Delphi-Quellcode:
form1.visible:=false;
on form2.close form1.visible:=true; |
Re: Zweitfenster immer vor Hauptfenster - aber kein ShowModa
In dem Fall würde ich aber lieber ein modales Fenster anzeigen, und den auszuführenden Code in einen neuen Thread packen. Dann könntest du sogar Informationen über den Fortschritt im "Wartefenster" anzeigen lassen.
|
Re: Zweitfenster immer vor Hauptfenster - aber kein ShowModa
Setz das zweite Fenster doch einfach in den Vordergrund.
Delphi-Quellcode:
Dem ersten Fenster kannst Du dann aber dennoch den Focus geben. Eventuell kombinieren mit IchBins' Tipp, das erste Fenster deaktivieren.
procedure SetTopMost(Topmost: Boolean);
var Flags: Cardinal; begin Flags := SWP_DRAWFRAME or SWP_NOMOVE or SWP_NOSIZE; If Topmost then SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, Flags) else SetWindowPos(Handle, HWND_NOTOPMOST, 0, 0, 0, 0, Flags); end; |
Re: Zweitfenster immer vor Hauptfenster - aber kein ShowModa
Danke an alle!
Das mit dem HauptForm.enabled hat funktioniert. Gruß, ManuMF |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:49 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