2012-10-15 3 views
4

Nous avons une application avec une forme principale et une seconde forme non-modale qui peut être utilisée côte à côte. Notre formulaire principal affiche une liste de configurations, tandis que le second formulaire non modal montre une configuration plus détaillée.Delphi: 'ShowModal' à partir de la forme secondaire non-modale

Lorsque nous montrons un formulaire modal (demandé à partir du deuxième formulaire non-modal), le formulaire principal apparaît devant le second formulaire jusqu'à ce que nous fermions ce formulaire modal.

Comment puis-je éviter ce comportement? J'ai déjà essayé de créer ce dernier formulaire modal de différentes manières ('Applicaton.CreateForm', 'TForm.Create', en définissant le parent), mais toujours obtenir le formulaire principal pour apparaître.

Des idées?

Merci d'avance!

+0

Comment créez-vous * habituellement * votre formulaire modal (sans utiliser 'Applicaton.CreateForm')? Avez-vous essayé quelque chose comme 'ModalForm: = TModalForm.Create (nil); ModalForm.ShowModal; '? – TLama

+0

La définition du parent pour la forme modale risque de geler votre application. –

+0

avez-vous essayé de définir mainform comme form2nd.parent? –

Répondre

5

Set Application.ModalPopupMode à pmAuto

Voici ce que dit la documentation:

TForm.PopupParent 

Définit une commande de formes empilées que les utilisateurs ne peuvent pas changer. Si la propriété PopupMode est définie sur pmExplicit et que PopupParent est nul, alors Application.MainForm est implicitement utilisé comme PopupParent. Si Application.MainForm n'est pas affecté, Application.Handle est utilisé comme PopupParent. Si la propriété PopupMode est définie sur pmAuto, Screen.ActiveForm est utilisée comme propriété PopupParent.

Questions connexes