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

델파이 Q&A
Delphi Programming Q&A
[7954] Re:폼 생성에 대해
박정모 [] 835 읽음    2002-02-06 09:28

1번과 2번은 동일합니다.

1번은 class 참조형, class 변수가 인자로 전달되기 때문에 항상 class 변수에
Form의 instance가 연결됩니다.

2번은 Create( ... ) 함수의 반환형을 class 변수에 대입하는 방식으로 때때로
class 변수 없이 작업을 진행할 때 사용될 수 있습니다. 예로서, Modal form을
생성해서 사용한다면

with TAnyModalForm.Create( Application ) do
begin
   ModalResult := ShowModal;

   if ModalResult = ... then
   else ...

   Close;
end;

와 같이 class 변수없이 사용될 수 있습니다.

3번의 경우는 Self를 owner로 하는 Form을 생성하게 됩니다. Owner란 owner가
메모리에서 해제되면 그 slave(?)도 역시 메모리에서 해제되는, 그러니까 메모
리 해제가 위임되는 대상을 말합니다.

2번에서는 TForm1의 owner는 Application이어서 Application.Destroy가 발생하
면 TForm1 역시 Application에 의해서 메모리가 해제 됩니다. 3번에서는 Self
가 destroy될 때 TForm1이 메모리 해제됩니다.


델초보 님이 쓰신 글 :
: 다음 세 가지는 서로 어떤 차이가 있나요 ?
:
: 1)
:   Application.CreateForm(TForm1,form1);
:   Form1.show;
: 2)
:   Form1 := TForm1.create(Application);;
:   Form1.show;
: 3)
:   Form1 := TForm1.create(self);;
:   Form1.show;
:
:

+ -

관련 글 리스트
7952 폼 생성에 대해 델초보 587 2002/02/06
7954     Re:폼 생성에 대해 박정모 835 2002/02/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.