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
[489] [답변] 김나현/ zpis~님께 감사/프포
박지훈.임프 [cbuilder] 5584 읽음    1998-08-05 01:57
안녕하세요. 천리안 프로그래머 포럼 C++Builder 담당자 임펠리테리입니다.

먼저, 제가 드린 답변이 도움이 되었다니 정말 기쁘군요..

질문내용에 대해 설명하기 위해, 먼저 컨트롤의 오너(Owner)와 패어런트(Parent)의

개념을 설명드리죠. 오너는 그 컨트롤을 소유하고 있는 윈도우 컨트롤을 말하는거구

요, 패어런트는 그 컨트롤이 나타날 바탕이 되는 컨트롤을 말하는 겁니다.

그러니까 오너 객체가 삭제되면 그에 속해있는 차일드 컨트롤들도 모두 파괴됩니다.

이에 반해, 패어런트는 단순히 컨트롤이 그려질 배경 컨트롤을 말하는거죠.

오너는 폼으로 선언되는것이 일반적이지만, 만약 패어런트가 끝까지 종료되지 않을

상황이라면 패어런트를 오너로 잡아도 상관없습니다.

다음과 같은 코딩에서,

Image1 = new TImage(this);
Image1->Parent = PaintBox1;
...

첫줄의 this는 오너에 해당하구요, 두번째줄의 PaintBox1은 패어런트에 해당합니다.

그리고 두번째 줄의 PaintBox1은 실제로 이미지가 나타날 배경이 되는 패어런트죠.

여기서 Form1과 같이 폼 객체의 이름을 직접 지정하는 것보단 this와 같이 해당 클래

스로부터 폼 객체의 포인터를 받는 것이 안전빵입니다.

패어런트는 윈도우 컨트롤(윈도우 핸들을 가지는 컨트롤)이라면 아무거라도 다 지정

할 수 있습니다. 그러니까, 위와 같이 PaintBox1(컨트롤입니다)을 지정할 수있는 거

죠. 설명하다 PaintBox의 경우를 같이 설명했네요~ ^^;;

두번째, 페이지 컨트롤의 경우를 질문하셨죠? 페이지 컨트롤 자체에다가 이미지를

생성해줄 수도 있지만, 그걸 원하시는 것은 아닐테고, 아마도 페이지 컨트롤에 포함

된 탭시트에 그리는 것을 말씀하시는 거겠죠...

코딩은 동일하구요, 혹시나 하여 코드를 보여드립니다.

void __fastcall TForm1::FormCreate(TObject *Sender)
{
    Image1 = new TImage(this);
    Image1->Parent = TabSheet2;
    Image1->SetBounds(10, 10, 200, 200);
    Image1->Picture->LoadFromFile("skyhi1.bmp");
    Image1->Visible = true;
}

두번째 줄에서 패어런트로서 TabSheet2(두번째 탭시트)를 지정한거 보이죠..

세번째 줄의 SetBounds()함수는 Left, Top, Width, Height를 동시에 지정하는 함수입

니다. TControl의 멤버함수이므로 TControl로부터 상속받는 모든 클래스의 객체, 즉

실행시 화면에 보이는 대부분의 객체에 써먹을 수 있습니다. 당연히 네가지 프포퍼티

를 각각 지정하는 것보단 빠르겠죠? ^^

도움 되시길 바라면서, 그럼 이만...




독립문에서 임펠리테리였습니다.

(cbuilder, skyhi18)



+ -

관련 글 리스트
487 >감사< zpis~님께 감사/프포 김나현 5448 1998/08/04
489     [답변] 김나현/ zpis~님께 감사/프포 박지훈.임프 5584 1998/08/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.