|
전역 변수로 Screen이란게 있습니다. 이 변수는 현재 열린 모든 Form을
Forms 라는 배열 프로퍼티로 알려 줍니다.
Screen->Forms[ index ].ClassName 을 통해서 특정 Form의 class이름을
비교 할 수 있는데, 이것을 통해 한 Form이 몇개나 열렸는지, Form이
내가 원하는 것인지 확인할 수 있습니다.
Design time에 Form을 선택하면 Object inspector의 상단에
Form1 : TForm1
대충 이런식으로 나오죠? 여기서 뒷부분이 바로 ClassName 입니다.
void CloseForm( String ClassName )
{
for ( i = 0; i < Screen->FormCount; i++ )
if ( AnsiCompareText( Screen[ i ]->ClassName, ClassName ) == 0 )
{
Screen[ i ]->Close( );
return;
}
}
void ReCreateForm( void )
{
CloseForm( "TForm1" );
TForm1 *form = new TForm1( Application );
form->Show( );
}
대충 이 비슷하게 코딩하면 될텐데요... ^^;;
제가 C++ Builder를 사용한지 너무 오래되어서 문법이 틀릴지도 모르겠네요.
안되는게 있음 다시 질문 하십시요.
|