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
[62262] Re:폼의 생성자와 OnCreate() 차이점
장성호 [nasilso] 1988 읽음    2010-08-26 16:17
생성자와 소멸자는 Form이라는 class 가 생성/소멸될때 호출되는 함수이며

OnCreate 이벤트는
Form->Handle 에 해당하는 window가 Createwindow로 생성된후에..
WM_CREATE 라는 메세지가 발생했을때 발생하는 이벤트이며

OnDestory는
Form->Handle에 해당하는 윈도우를 DestroyWindow 하면
WM_DESTORY 메세지가 발생하는데.. 그때 발생하는 이벤트입니다.

Form클래스의 Instance가 마치 window처럼 동작하니..
class와 window가 헷갈리구 구분이 안되는데..

Form클래스그냥 class입니다.
단 window를 생성 및 여러가지를 자동으로 관리해주는 클래스죠

----------------------------------------------------------

new로 직접생성한Form과 AutoCreate로 생성한 Form의 성능상의 차이는...
근본적으로 없습니다.

만약 수십개의 Form이 있는 어플의 모든 Form을
AutoCreate로 생성한다면..
* 프로그램 시작할때 시간이 좀 많이 걸리겠죠
* 또 그만큼 메모리를 좀더 차지할것이구요

사용할때만 new로 생성해서 사용한다면..
* 프로그램 시작할때는 빨리시작하지만..
* 사용하려고 할때 new로 생성하는 시간이 좀 걸리겠죠
   간단한 Form이면  하나생성하는데 그리 많이 시간이 걸리지 않을 것입니다만..

개인적으로 두가지 방법을 적절히 썩어서 사용합니다.
메인폼 외에도 프로그램 시작부터 끝날때까지 자주 쓰이는 Form이면
Auto-Create로 생성해서 쓰고..

간단히 어쩌다 쓰일 Form이면
필요할때 생성해서 쓰고 그럽니다.

-----------------------------------------------------------------------
vcl에서 가장많이 쓰는 함수중에
ShowMessage 있죠?

이 함수는 함수가 호출되면
TForm을 상속받은 TMessageForm을 동적으로 생성하고
필요한 버튼도 동적으로 생성해서 위치를 적절히 배치하고 크기도 메세지길이에 맞춰 절절히 조정하고..
그런후에 ShowModal로 화면에 나타내주는 함수입니다.

InputQuery도 마찬가지구요..

그럼...


도대체 님이 쓰신 글 :
: 프로그램이 시작할때 조금 느린감이 있어서 이곳저곳을 살펴보는중에 궁금한것이 있어서 글을 올립니다.
:
: 폼의 생성자에서 다른 폼과 컨트롤들을 생성하는데요
:
: 생성자에서 생성하는것과 OnCreate()함수에서 생성하는것이 어떤 차이가 있는지 궁금합니다.
:
: 그리고 application이 실행될때 자동 생성되는 폼과
:
: new로 생성하는 폼이 퍼포먼스에 큰 차이를 보이는지 알고 싶습니다.

+ -

관련 글 리스트
62261 폼의 생성자와 OnCreate() 차이점 도대체 1128 2010/08/26
62262     Re:폼의 생성자와 OnCreate() 차이점 장성호 1988 2010/08/26
62263         Re:Re:폼의 생성자와 OnCreate() 차이점 도대체 1091 2010/08/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.