2012-06-22 1 views
0

Builder XE2에 여러 개의 양식 응용 프로그램을 구축 중이며 양식 주문에 문제가 있습니다.Embarcadero C++ Builder XE, 양식 주문 및 양식 그룹

Form1과 Form2 (Form1이 자동 작성 됨)와 같은 IDE GUI를 사용하여 양식을 작성한다고 가정 해 봅시다. Form2는 항상 Form1 위에 있으며 Form1에 액세스 할 수는 있지만 해당 컨트롤을 사용합니다. If If 프로그래밍 방식으로 다른 폼을 만듭니다. Form2와 동일한 우선 순위를가집니다. (둘 사이를 전환하여 앞/뒤로 보낼 수는 있지만) Form1은 여전히 ​​뒤에 있습니다.

프로젝트의 모든 양식이 동일한 우선 순위를 갖도록 fsStayOnTop을 사용하지 않고 어떻게 수정합니까? 양식 주문은 어디에 정의되어 있습니까?

답변

0

dproj 파일의 소스 코드에서 Application.MainFormOnTaskbar : = True를 확인하십시오.

이것은 주 양식 (옵션 ...의 주 양식으로 정의 된 양식)의 ZOrder에 영향을 주며 해당 서식을 해당 응용 프로그램에서 작성된 다른 양식 뒤에 남겨 둡니다.

Embarcadero는 Outlook과 같이 널리 사용되는 메인 폼/넌 모달 자식 폼 응용 프로그램과 다르게 작동하지만 "의도 한대로 작동합니다"라고 말합니다.

+0

정말로 감사합니다. – Gear54rus

0

PopupModePopupParent 속성에 대한 내용은 TForm입니다. MainForm과 같은 소리가 보조 양식의 PopupParent으로 설정됩니다.

+0

네, 감사합니다, 그렇습니다. 그렇지만 둘 다 pmNone을 가지고 있으며 popupmode와 popupparent는 없습니다. 이제 google에 대해 배웠습니다. winapi.freetechsecrets.com/win32/WIN32Z_Order00000014.htm 그리고 나서 이것을 만들었습니다 (newOp는 작업을 위해 포크로 만들려는 창이고, TOpWindow는 사용하려는 모델입니다) : TOpWindow * newOp; 응용 프로그램 -> CreateForm (__ classid (TOpWindow), & newOp); SetWindowPos (CryptWindow-> Handle, newOp-> 핸들, 0,0,0,0, SWP_NOSIZE | SWP_NOMOVE); 그리고 여전히 situatin은 동일합니다 ... – Gear54rus