자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)

Firemonkey TGridPanelLayout 아이템 삭제

2021.04.01 09:38

공수래 조회 수:231

본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
 

안녕하세요.

현재 C++ Builder 10.3 Communication Edition을 사용해서 안드로이드 프로그램 작성 중입니다.

 

FMX기반에서,,

 

아래 소스는 TGridPanelLayout 객체 생성 후에 각 컬럼에 동적으로 TMyFrameOrd2 객체 생성해서 추가하는 코드입니다.

 

====================================================

for(int ix = 0; ix < item_cnt; ix++){

  pTemp = new TMyFrameOrd2(NULL);

 

       pTemp->Parent = this->gpl22;

 

       pTemp->Align = TAlignLayout::Client;

 

       pTemp->SetSelctItemInfo(m_SelItemsList[ix]);

 

       // register a event handler

       pTemp->OnBtnOk = PayItemEventHandler;

 

       // 화면 표시

       pTemp->UpdateOrdWidget();

 

      // add to GridPanel

      this->gpl22->ControlCollection->AddControl(pTemp);

}

=====================================================

문제는 TGridPanelLayout 객체인 gpl22를 삭제 시,

 

1) this->gpl22->ControlCollection->Clear(); 를 실행 ==> TMyFrameOrd2 객체의 소멸자는 호출

2) gpl22->RemoveControl(index) 이런 식으로 하나씩 삭제할 경우 ==> TMyFrameOrd2 객체 소멸자 호출 안됨

 

어떤 차이가 있는지요?

 

감사합니다.