껌뻑거리기는 하지만...
아래 코드에서 Show한후에 위치를 옮겨보세요
Form3 = new TForm3(this);
Form3->Left = m->Left ;
Form3->Top = m->Top;
Form3->Width = m->Width;
Form3->Height = m->Height;
Form3->Show();
Form3 = new TForm3(this);
Form3->Show();
Form3->Left = m->Left ;
Form3->Top = m->Top;
Form3->Width = m->Width;
Form3->Height = m->Height;
Form이 Show될때는 현재 Active되어있는 폼의 모니터를 기준으로 띄워집니다.
즉 현재 ActiveForm이 2번째 모니터에 있다면 2번째 모니터에 띄게 됩니다.
하지만 Show한후에 위치를 바꾸면 아무 문제 없겠죠
그럼..
linuxman 님이 쓰신 글 :
: 모니터를 확장해서 사용하고 있습니다 ( 노트북에... LCD 모니터를 연결해서 )
:
: 2번째 모니터에 폼을 뿌리려고..동적으로 폼을 생성했습니다.
: 코드에서 처럼..0번째 모니터에는 동적으로 생성한 폼 Form2를
: 두번째 모니터에는 Form3를 할당하였습니다.
: 문제는 동적으로 할당한 fom3는 두번째 모니터에 표시가 되지 않습니다..
: 정적으로 생성되었던 form1은 두번째 모니터 로 잘 표시됩니다..
: 아래에서 form1과 form3를 교대로 주석처리해서 보시면 알수 있습니다.
:
: 동적으로 생성한 폼을 2번째 모니터로 내보고 싶은데..정적인것과 동적인것의 어떤 차이가 있는건가요?
:
:
: for ( int i = 0 ;i <Screen->MonitorCount;i++ )
: {
: TMonitor *m = Screen->Monitors[i];
:
: if(i == 0 ){ //첫번째 모니터.
:
: Form2 = new TForm2(this);
:
: Form2->Left = m->Left;
: Form2->Top = m->Top;
: Form2->Width = m->Width ;
: Form2->Height = m->Height;
: Form2->WindowState = wsMaximized;
:
: Form2->Show();
:
:
: }
: if(i==1){ //두번째 모니터 ..
:
: /* 아래의 form1을 주석처리하고, 여기를 enable 시키면.. form3가 항상 첫번째 모니터에 표시됩니다
: 두번째 모니터에 표시되어야 하는데...
: */
: Form3 = new TForm3(this);
: Form3->Left = m->Left ;
: Form3->Top = m->Top;
: Form3->Width = m->Width;
: Form3->Height = m->Height;
: Form3->Show();
: */
:
: /*정적으로 생성한 form1은 두번째 모니터에 잘 표시됩니다 */
: Form1->Left = m->Left ;
: Form1->Top = m->Top;
: Form1->Width = m->Width;
: Form1->Height = m->Height;
:
: }
: }