Question

I am building multiple forms app in Builder XE2 and I have a problem with forms ordering.

Suppose I create forms using IDE GUI, like Form1 and Form2 (Form1 was autocreated), when I run my app Form2 is always on top of Form1 (even though I can access Form1, use its controls, etc.) If I create another form programmatically, it has the same priority as Form2 (I can switch between them, and bring them to front/send to back), but Form1 still stays at the back.

How do I fix that without using fsStayOnTop so that every form in the project has the same priority? Where is forms order defined?

Was it helpful?

Solution

Check the dproj file source code for Application.MainFormOnTaskbar := True;

This affects the ZOrder of the main form (the form defined as the Main form in Options...), and also causes it to stay behind other forms created in that application.

Embarcadero will say this is "working as intended", even though it works differently from popular main-form/non-modal-child-form applications out there, like Outlook.

OTHER TIPS

Read up about the PopupMode and PopupParent properties of TForm. Sounds like your MainForm is getting set as the PopupParent of your secondary Forms.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top