|
도마뱀 님이 쓰신 글 :
: MDIChild의 동적 생성후 Access에 대한 질문입니다.
: TImage 컴포넌트가 있는 MDIChild 창을 열개를 동적으로 생성했을때....
: 예를 들어 세번째 생성된 MDIChild 창을 클릭하면....
: 세번째 창이 제일 위에 보여지긴 하는데....
: Access하려면 제일 마지막에 생성된폼(열번째 폼) 만 Access가 가능합니다.
: 세번째 폼의 TImage 컴포넌트나 기타 Method들을 Access하려면 어떻게 해야 합니까...//???
: 부모창의 Children[i]에 자식창이 저장되는건 알겠는데.
: Access하는 방법을 모르겠습니다.
:
: void __fastcall TForm2::Button1Click(TObject *Sender)
: {
: int data=0;
: for(int x=0;x<256;x++)
: {
: for(int y=0;y<256;y++)
: {
: data=GetRValue(Form2->Image1->Canvas->Pixels[x][y])+100;
: if(data>255)Image2->Canvas->Pixels[x][y]=RGB(255,255,255);
: else Image2->Canvas->Pixels[x][y]=RGB(data,data,data);
: }
: }
: }
: 위와 같은 코드가 있으면....세번째 폼이 활성화 되어 있어도...
: 열번째 폼에서...결과가 나타나네요...
:
: 그리고 추가질문입니다.
: 폼을 동적생성 한후에 폼이 종료될때
: Action=caFree;
: 을 하게 되면....그 폼에서 사용되던 다른 컴포넌트들도 자동으로 해제되는지요????
:
: 답변 부탁드립니다.
//------------
안녕하세요
간단히 TForm* pForm = MainForm->MDIChildren[3];
폼포인트 얻어서 요걸로 사용하면 될것같고..
만약 Active변경시키기 위해서도 간단히
위에서 받은 폼포이터를 pForm->BringToFront(); 하면 ActiveMDiChild도 변경될것같네요^^;
글구 다른 컴포넌트들도 자동으로 해제된다는것은 구체적으로 무엇을 얘기하는지 잘 모르겠지만
MDI Child폼에 Action=caFree해주시면 다른 컴퍼넌트들도 해지되지만 new로 생성한것들은
delete해줘야지요..
그럼 수고하세요
|