아 제가 질문을 잘못드렸네요
Form을 새로 만들면
TForm2 *Form2;
라고 전역으로 자동 선언이 되어 있지요
아래 동적생성한 폼을
Form2 = new TForm2(this);
Form2->Show();
이렇게 한거였거든요 ㅎㅎ
근데 저렇게해도
Form2->Showing이 안먹더라고요.
답변 감사합니다.
장성호 님이 쓰신 글 :
: 동적으로 생성한 폼의 포인터를 pFormCheckTest 변수에 넣어서 사용했으니
:
: 당연히 FormCheckTest 에 들어냈는 내용과는 다를 수밖에 없죠
:
: ==============================================
:
: 방법 1)
:
: 동적생성한 폼을 global변수에 할당하여 체크
: FormCheckTest = new TFormCheckTest(this);
:
:
: 방법2)
: Application->FindComponent 같은 함수는 없습니다.
: 대신 Application 처럼 자동생성되는 Global객체 중 Screen이라는 객체가 있습니다.
:
:
: Screen->FormCount ; // TCustmForm을 상속받아 만들어진 Form의 갯수
: Screen->Forms // TCustmForm을 상속받아 만들어진 Form의 포인터 리스트
:
:
: 위 Screen객체가 가지고 있는 Form리스트에 생성된 폼의 포인터가 들어가 있으니
: 체크해 보시면 됩니다.
:
: ClassName으로 체크하시면 될듯 하네요
:
: 그럼..
:
:
: 폼확인 님이 쓰신 글 :
: : 제가
: :
: : TForm1 에서
: :
: : TFormCheckTest *pFormCheckTest = new TFormCheckTest(this);
: :
: : pFormCheckTest->Show();
: :
: : 를 해서 폼을 생성하는데요
: :
: : TForm1에서 버튼을 누르면
: :
: : if(FormCheckTest->Showing)
: : {
: : //
: : }
: : 이렇게 체크를 해봤는데 안되더라고요. 동적생성한 폼은 FormCheckTest가 아닐수도 있다고 하더라고요.
: :
: : 그래서
: :
: : if(Application->FindComponent("FormCheckTest"))
: : {
: : //
: : }
: : 이렇게도 해봤는데 창이 열려있는데 안걸리네요
: :
: : 창이 열려있는지 체크하는 또다른 방법을 알고 계신분 힌트좀 부탁드립니다.
|