델파이 Owner 와 Parent
델파이 "Owner"와 "Parent"는 객체 지향 프로그래밍 개념 중에서
객체 간의 관계를 정의하는 데 사용되는 중요한 개념이다
Owner (소유자)
"Owner"는 주로 컴포넌트와 관련이 있습니다.
컴포넌트는 Delphi 응용 프로그램에서 재사용 가능한 코드 조각을 나타내며,
시각적 또는 비시각적으로 폼 또는 다른 컴포넌트에 배치될 수 있다.
Owner 컴포넌트는 다른 컴포넌트를 소유하고 관리하는 컴포넌트입니다.
예를 들어, 폼(Form)은 여러 컴포넌트를 소유하고
해당 컴포넌트들을 폼 위에 배치합니다.
Owner-ownee(소유자-소유물) 관계에서, 소유자 컴포넌트가
소유물 컴포넌트의 생명주기를 관리하며, 소유물이 소유자를 참조할 수 있습니다.
주요 메서드와 속성 중 하나는 "TComponent" 클래스에서 제공되는
"Owner" 속성이다.
Parent (부모)
"Parent"는 주로 시각적 컨트롤들 사이의
관계와 관련이 있습니다.
예를 들어, 폼(Form) 위에 버튼(Button)과 텍스트 상자(Edit)를 배치하는 경우,
버튼과 텍스트 상자는 폼의 자식 컨트롤(child controls)이 된다.
"Parent"는 시각적 컨트롤의 부모를 나타내며,
시각적 계층 구조에서 컨트롤들의 위치와 크기를 관리하는데
"TControl" 클래스에서 "Parent" 속성을 통해 부모 컨트롤을 설정하거나 참조한다.
다음의 코드를 보자.
Button1 := TButton.Create(Self);
// parameter 형식은 'AOwner: TComponent'
Button1.parent := Panel1;
생성된 Button1 의 Owner 는 'Self' 로, Parent 는 'Panel1'으로 지정된다.
Owner ?
- TComponent의 Property이며 TComponent type 이다.
- 메모리에서의 소유자를 의미한다.
- constructor 의 parameter 로 값이 지정된다.
Parent ?
- TControl의 Property 이며 TWincontrol type 이다.
- 해당 Control의 화면상에서의 소유자를 의미한다.
- form, panel, groupbox 와 같이 타 Component를 포함할 수 있는
Component 가 일반적으로 지정된다.
차이는?
- 사람과 비교하자면, Owner 는 부모님에, Parent 는 회사에 비교할 수 있다.
혈연에 의한 부모님은 죽을때까지 변할 수 없지만,
회사는 상황에 따라 바꿀 수 있다.
(그리고 명함에는 회사이름은 써도 부모님 이름은 쓰지않는다 ^^;)
'Delphi > 문법' 카테고리의 다른 글
델파이 Application (0) | 2023.09.21 |
---|---|
델파이 Self (0) | 2023.09.20 |
델파이 포인터 (Pointer) 11편 (0) | 2023.08.24 |
델파이 포인터 (Pointer) 10편 (0) | 2023.08.23 |
델파이 포인터 (Pointer) 9편 (0) | 2023.08.22 |
댓글