![]() |
Mainform wird immer sichbar bei ShowModal
Hallo Leute,
mein Titel ist etwas verwirrend, aber ich weiß nicht wie ich mein Problem besser in einem Satz darstellen kann. Problem ist folgendes: Ich hab eine Mainform, aus der ich eine Terminform bei bedarf erzeuge, damit mehrer Termine gleichzeitig geöffnet werden können. Das funktioniert auch problemlos. Nun rufe ich aber die eine oder andere weitere Form mit showmodal aus der Terminform auf. Immer wenn ich das tue, dann verschwindet meine Terminform vom Bildschirm, die Hauptform wird sichtbar und meine mit showmodal aufgerufene Form wird sichbar. Wird die modale Form jetzt geschlossen kommt meine Terminform wieder. Wie kann ich verhindern, dass die Mainform in den Vordergrund kommt? Mein Terminform erzeuge ich mit Application.CreateForm. Kann es daran liegen? ich habe schon versucht, die modale form aus der Terminform heraus zu erzeugen, ging auch aber mit dem gleichen Effekt. Weiß mir zur Zeit keinen Rat. |
AW: Mainform wird immer sichbar bei ShowModal
Wieso CreateForm?
Nutze direkt TTerminForm.Create . |
AW: Mainform wird immer sichbar bei ShowModal
Hallo,
ich glaube ich hatte ein ![]() Knackpunkt ist wohl zum einem die Delhpiversion als auch Parameter wie
Delphi-Quellcode:
. Das sollte in der DPR bei neueren Projekten ziemlich am Anfang stehen. Bei mir habe ich mit Delphi 2007 keine Lösung gefunden, wohingegen neuere Delphiversionen gar keine Probleme zeigten.
Application.MainFormOnTaskbar := TRUE
Vielleicht hilft Dir das ja. Gruß, Chris |
AW: Mainform wird immer sichbar bei ShowModal
Leider löst das alles mein Problem nicht. Auch bei einem TTerminForm.Create() muß ich einen Owner angeben, wobei es sich ja nur um die Mainform oder die Application handeln kann. Dann hab ich das gleich Ergebnis wie beim Application.Createform.
Auch das MainformOnTaskbar bringt nicht die erhoffte Lösung. Laut OH sollte der Wert ja auch True sein, da sonst keine Aero-Effekt nutzbar sind, welche aber schon sein sollten. Hat noch jemand irgendwelche Ideen? |
AW: Mainform wird immer sichbar bei ShowModal
Zitat:
Delphi-Quellcode:
sein und das ist kein Owner ;)
nil
|
AW: Mainform wird immer sichbar bei ShowModal
Wenn Du das Form selbst wieder freigeben möchtest, dann versuch mal nil als Owner zu übergeben.
[Edit] Kein roter Kasten :-o |
AW: Mainform wird immer sichbar bei ShowModal
Hallo Captnemo,
Zitat:
Versuch mal mit dem Parameter
Delphi-Quellcode:
ein wenig zu spielen. Meines Erachtens dürfte sich dadurch Dein Problem lösen lassen.
Application.MainFormOnTaskbar := FALSE/TRUE;
Application.ModalPopupMode := pmNone/pmAuto/pmExplicit; Ich brauch hier bei meinem D2007
Delphi-Quellcode:
und
FALSE
Delphi-Quellcode:
. Ich Denke dass bei Deinem D2010
pmNone
Delphi-Quellcode:
und
TRUE
Delphi-Quellcode:
genauso funktionieren sollte :-)
pmNone
Gruß, Chris |
AW: Mainform wird immer sichbar bei ShowModal
Zitat:
|
AW: Mainform wird immer sichbar bei ShowModal
Alsooooooo: TTerminform.Create(nil) hat nix an dem Verhalten geändert. (Jetzt stellt sich mir die Frage welche Auswirkungen, Vor- oder Nachteile, das angeben oder weglassen des Owners auf meine Application hat, denn mir sind keine Veränderungen aufgefallen).
Aber Application.ModalPopupMode:=pmExplicit scheint die Lösung zu sein. Zumindest verhält sich mein Programm jetzt so, wie ich es mir erhofft hatte. Ob es andere "Nebenwirkungen" hat, wird sich im weiteren Verlauf zeigen. |
AW: Mainform wird immer sichbar bei ShowModal
Owner und Parent
Der Parent (bei den VCL-Komponenten) ist für die Darstellung zuständig, also worin die Komponente dargestellt wird. Der Owner ist für die Freigabe zuständig. Existiert das Objekt, wärend der Owner freigegeben wird, dann gibt der Owner die Komponente mit frei. > Siehe die ganzen Komponenten, welcher über den VCL-Loader auf die Forms geladen wurden. > Diese verschwinden mit, wenn man die Form freigibt. Gibt man eine Komponente aber selber frei, dann braucht man nicht unbedingt einen Owner, bzw. der ist unter Umständen fehl am Platz. Denn wenn man selber eine Komponente freigeben will, welche vorher von dem Owner schon weggeräumt wurde, dann knallt es gerne mal. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 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