C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[64720] Re:안 됩니다 ^^
이용태 [] 1003 읽음    2011-06-30 14:48
빌더 6.0에선 잘되는데 빌더 2010에서는 진짜 안되네요..;;;

게시판 열심히 달려보니.. 대부분의 유저분들이 아제나님과는 반대의 기능(항상 서브폼이 메인폼위에 올라가게)을 질문하셨던데요...;;

게시판 글들 보면서 항상 메인폼 서브폼보다 위에 있게 하는 방법에 대해 이것저것 시도해봤는데 잘 안되더라구여.. ;;




그래서 조금 꼼수를 생각해봤는데요.. 그냥 잠깐 생각해본겁니다..;;; 효용성이 있을지는 모르겠고요..;;


폼 2개를 만듭니다.
Form1 <--- 메인폼
Form2 <--- 서브폼

각 폼에 Panel 하나씩 만듭니다. Form1 -> Panel1, Form2 -> Panel2

Form1에 버튼 하나 올려놓고.. 버튼 클릭시 Form1위에 Form2가 올라가는데요..
Form2위로 Form1이 안올라가니까.. 요걸 올라간것처럼 보이기 위해 각 폼에 있는 패널을 바꿔치기 하는거죠.

즉 각 폼에 있는 패널의 부모 포인터를 바꿔치기 하면...
TForm1에 있던 Panel1이 TForm2에 올라가고, TForm2에 있던 Panel2가 TForm1으로 이동하니 겉보기엔 항상 TForm1의 Panel1이 항상 위에 보이는 것처럼 보인다는거죠.

물론 TForm2가 닫히면.. TForm2에 있던 Panel1의 부모 포인터는 다시 TForm1으로 되돌려 놔야 겠죠..

대충 테스트 해보니 되긴 하는데요.. 출력되는 서브 폼이 많아지면... 예외처리가... 쿨럭;;;;






아제나 님이 쓰신 글 :
: 작성하신대로 코드를 해도 안 됩니다.
:
: 빌더 버젼에 따라서 다른 모양입니다...
:
: 검색 결과 빌더 2007 이후로 서브폼이 항상 메인폼 위에 올라가도록 되었다고 변경되었다는데
:
: 어떻게 해야지 그것을 끌 수 있는지는 찾을 수 없네요.
:
:
:
:
:
: 이용태 님이 쓰신 글 :
: : void __fastcall TForm1::Button1Click(TObject *Sender)
: :  {
: :    TForm *nf;
: : 
: :    nf = new TForm(Application);
: : 
: :    nf->Show();
: :
: :    this->Show();  //<----- 요렇게 함 해보시죠...
: :  }
: :
: : 테스트 해보니 메인폼이 동적폼 보다 앞에 위치하네요..
: : this->Show()를 적절히 조합하시면 되지 않을까요?
: :
: :
: :
: : 아제나 님이 쓰신 글 :
: : : 동적으로 생성한 서브 폼이 메인 폼 보다 항상 위에 배치되는군요.
: : :
: : : 서브 폼이 클 경우에 메인 폼을 가려버리는데, 메인 폼을 위로 올릴 방법이 없네요.
: : :
: : : 모달 폼도 아닌데 이유를 모르겠네요 =_=
: : :
: : : 서브 폼 위로 메인 폼을 띄울 방법이 있을까요?
: : :
: : : 테스트 코드는 아래와 같습니다.
: : :
: : : 새로 생성한 *nf 폼이 항상 Form1 위에 올라가게 됩니다.
: : :
: : :
: : :
: : :
: : :
: : : 
: : : //---------------------------------------------------------------------------
: : : 
: : : #include 
: : : #pragma hdrstop
: : : 
: : : #include "Unit1.h"
: : : //---------------------------------------------------------------------------
: : : #pragma package(smart_init)
: : : #pragma resource "*.dfm"
: : : TForm1 *Form1;
: : : //---------------------------------------------------------------------------
: : : __fastcall TForm1::TForm1(TComponent* Owner)
: : :   : TForm(Owner)
: : : {
: : : }
: : : //---------------------------------------------------------------------------
: : : void __fastcall TForm1::Button1Click(TObject *Sender)
: : : {
: : :   TForm *nf;
: : : 
: : :   nf = new TForm(Application);
: : : 
: : :   nf->Show();
: : : }
: : : //---------------------------------------------------------------------------
: : : 
: : : 

+ -

관련 글 리스트
64717 동적 생성한 서브 폼이 항상 메인 폼 위에 위치하지 않도록 하는 법 아제나 1167 2011/06/30
64718     Re:동적 생성한 서브 폼이 항상 메인 폼 위에 위치하지 않도록 하는 법 이용태 1735 2011/06/30
64719         안 됩니다 ^^ 아제나 930 2011/06/30
64720             Re:안 됩니다 ^^ 이용태 1003 2011/06/30
64721                 Re:Re:안 됩니다 ^^ 아제나 1086 2011/06/30
64742                     Re:Re:Re:안 됩니다 ^^ 장성호 1501 2011/07/04
64748                         Re:Re:Re:Re:안 됩니다 ^^ 아제나 1253 2011/07/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.