|
제가 작성한 코드를 잘 보내요..
Form생성과 위치설정을 모두 한후에 ..
Form.Show를 맨마지막에 한번에 4개 모두 합니다.
//------------------------------------------
Form을 생성하면 Form위에 control까지 여러개 생성되고..
화면에 나타난 생태에서 또한 위치를 바꾸면 처리해야하것이 상당히 많습니다.
그리고 님께서는
SetBound로 위치를 바꾸면 딱 한번에 모두 바뀌는데
Left/Top/Width/Height를 각각 설정해줌으로써 4번에 걸쳐서 위치변경작업이 일어나네요
화면에 나타나지 않은 상태에서는 별 의미가 없지만..
화면에 나타난상태에서는 다릅니다.
생성과 위치변경 show하는데 시간이 걸리기 때문에..
님과 같이 코딩하면 하나씩 하나씩 나타날수 밖에 없습니다.
그럼..
공부중 님이 쓰신 글 :
: 제가 한가지 빼먹은 것이 있군요
: 저는 아래와 같이 하였습니다.
: 아래 처럼 한 이유는 폼 1과 폼2 가 있습니다.
: 폼1에 폼2를 여러개 띄우기위하여 한 작업중입니다.
: int __fastcall TForm1::Calculation(int iCount,int iDivCount)
: {
: int iCalcul = 0;
: if(iCount<iDivCount)
: {
: iCalcul = 0;
: return iCalcul;
: }
: else if(iCount >= iDivCount &&iCount<(iDivCount*2))
: {
: iCalcul = 1;
: return iCalcul;
: }
: else if(iCount >= iDivCount &&iCount<(iDivCount*3))
: {
: iCalcul = 2;
: return iCalcul;
: }
: else if(iCount >= iDivCount &&iCount<(iDivCount*4))
: {
: iCalcul = 3;
: return iCalcul;
: }
: else if(iCount >= iDivCount &&iCount<(iDivCount*5))
: {
: iCalcul = 4;
: return iCalcul;
: }
: else
: {
: iCalcul = 5;
: return iCalcul;
: }
: }
:
: void __fastcall TForm1::Button1Click(TObject *Sender)
: {
: int iYpoint = 0;
: for(int i = 0; i< 16;i++)
: {
: TForm3* Form3 = new TForm3(Owner);
: Form3->Parent = Form1;
: Form3->Show();
: iYpoint = Calculation(i,4);
: Form3->Left = (Form1->Width/4)*(i%4);
: Form3->Width = (Form1->Width/4)-1;
: Form3->Top = (Form1->Height/4)*(iYpoint%4);
: Form3->Height = (Form1->Height/4)-1;
:
: }
: }
: 위와 같이 할경우 상당히 폼이 생성 될때 약간의 시간차이를 두고 생성 됩니다.
: 이시간 차를 없애고 싶습니다.
|