Form OnCreate Event 는 폼이 최초로 생성 될 때 호출이 됩니다.
프로젝트 옵션에 가서 [foms] 라는 탭을 클릭하면 자동 생성 폼과 , 수동 생성 폼으로 나뉘어 있습니다.
auto-create forms 박스에 있으면 프로그램이 시작하자 마자 자동 생성이 됩니다.
그럼 그 안에 있는 폼들의 Form OnCreate Event 는 이때 발생하게 됩니다.
또, 폼을 종료할때 Close() 를 호출된다고 해서 폼이 완전히 없어지는게 아니라 잠시 사라질 뿐입니다.
폼의 속성인 visible:=false 로 바뀌며서 보이지 않게 됩니다. 단지 윈도우만 안보이고 존재하고 있습니다.
여기서 다시 Show() 를 콜 하면 visible:=true 가 되면서 안보이던 폼이 보여지게 됩니다.
폼이 생성되는 것이 아니기 때문에 FormOnCreate Event 가발생하지 않습니다.
매번 Form OnCreate Event 를 발생하려면 자동생성 폼을 수동생성 폼 박스로 이동하고 폼을 수동으로
만들어야 합니다. 매번 동적으로 폼을 만들어 폼을 보여주면 폼이 처음 생성 되기 때문에 FormOnCreate Event 가 발생 될 수 있겠죠. 대신 종료할때 폼을 완전히 소멸시켜주어야 합니다. 폼에 FormOnClose 이벤트 함수가 있습니다. 여기에다 Action:= caFree; 절을 추가하면 폼을 완전 종료시킬수 있습니다.
이런식으로 코딩을 준비하고 폼을 동적으로 생성 해서 보여주면 되겠죠..
허학송 님이 쓰신 글 :
: Form OnCreate Event를 임의로 발생시킬수 있는 방법이 있는지 알고 싶습니다.
: 저는 메인폼에 여러개의 서브폼(menu component)을 연결하여 사용하고 있는데
: 각 서브폼에서 종료Button을 누르면 메인폼으로 돌아와서 다시 서브폼을 선택하도록
: 했습니다. 그런데 처음메인폼을 통해 서브폼으로 가면 Form OnCreate Event에 의해
: 폼이 보여 지는데 종료를 누르고 메인폼으로 왔다가 다시 서브폼으로 가보면
: 마지막 작업했던 내용이 남아 있습니다. 즉 From의 Oncreate Event가 동작 안한다는
: 뜻이지요, 매번 서브폼으로 연결될때 Form OnCreateEvent를 동작하게 하려면
: 어떻게 해야 하는지 궁금해서 글을 올립니다.
: 아직 Event에 대해 잘몰라서 그러니 조언 부탁드립니다.
: 감사합니다.
|