Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   BringToFont alternative ? (https://www.delphipraxis.net/178592-bringtofont-alternative.html)

arnof 16. Jan 2014 12:51

BringToFont alternative ?
 
Hi ich habe ein MDI Formular mit Childs in Vollbild offen. Nun mache ich eine neue normale Form auf mit ShowModal. Durch irgendein Ereignis legt sich nun das MDI Form vor das normale Formular und bleibt im Vordergrund. Troz eines Timers der dem normalen Formular sagt self.BringToFont bleibt das im Hintergrund, bis ich mal das Programmicon anklicke, danach ist alles so wie es soll.

Hat jemand eine Idee, wie man wirklich BringToFont setzen kann.

PS: mit der Fensterart StayonTop tritt das gleiche auf (was ja nicht sein kann in der Theorie)

Popov 16. Jan 2014 13:34

AW: BringToFont alternative ?
 
BringWindowToTop(Hwnd)?

arnof 16. Jan 2014 14:07

AW: BringToFont alternative ?
 
Zitat:

Zitat von Popov (Beitrag 1243967)
BringWindowToTop(Hwnd)?

gleiche verhalten!

Das Vordergrundfester ist blockiert (da das andere ShowModal ist, es liegt aber im Hintergrund und ist nicht sichtbar!

arnof 16. Jan 2014 14:13

AW: BringToFont alternative ?
 
Mein Bug: sorry :oops:

Wer den Timer nicht anschaltet :roll: Der wartet ewig auf das Ereignis!

himitsu 16. Jan 2014 14:17

AW: BringToFont alternative ?
 
Du kannst mal bei deiner Form Folgendes einstellen und schauen, ob es dann geht.
Delphi-Quellcode:
{DeineForm.}PopupParent := Application.MainForm; // bzw. dein MDI-Form
{DeineForm.}PopupMode := pmExplicit;
Alternativ kann man auch an Application.ModalPopupMode rumspielen.

[edit]
Timer sind bei der Fenstersteuerung ein blöde Angelegenheit.
Dann doch eher direkt auf die Fenster reagieren und es sofort machen.

arnof 16. Jan 2014 15:12

AW: BringToFont alternative ?
 
Zitat:

Zitat von himitsu (Beitrag 1243981)
Du kannst mal bei deiner Form Folgendes einstellen und schauen, ob es dann geht.
Delphi-Quellcode:
{DeineForm.}PopupParent := Application.MainForm; // bzw. dein MDI-Form
{DeineForm.}PopupMode := pmExplicit;
Alternativ kann man auch an Application.ModalPopupMode rumspielen.

[edit]
Timer sind bei der Fenstersteuerung ein blöde Angelegenheit.
Dann doch eher direkt auf die Fenster reagieren und es sofort machen.

Ja Du hast recht, die Timerlösung ist ...

Deine Lösung kannte ich gar nicht und das Funktioniert auch noch. Super, Danke!

...

Gab es auch in D5 noch garnicht, da ging das noch von alleine Richtig ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:44 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