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

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

  TMyListView = Class(TListView)
  public
    constructor Create(AOwner: TComponent); override;
  end;

  TListViewArray = Class
  public
    Box : array[1..42] of TMyListView;
  end;

var

ListViewArray: TListViewArray;
 

//동적으로 TListView 생성

ListViewArray:= TListViewArray.Create;

 

procedure Do_Create;

    for r := 0 to ii do begin
      for c := 1 to ixx do begin
        i := (r * ixx) + c;                                      // i 는 1 ~ 42 까지
        //ListView를 42개까지 생성시키면서 프로퍼티를 정함
        ListViewArray.Box[i] := TMyListView.Create(Nil);  
        ListViewArray.Box[i].Width := 50;
        ListViewArray.Box[i].Height:= 50;
        ListViewArray.Box[i].ID := i;

        ListViewArray.Box[i].Position.X := nHoriTerm + (c - 1) * (50+ nHoriTerm); 
        ListViewArray.Box[i].Position.Y := nTopMargin + r * (50+ nVertTerm);
        ListViewArray.Box[i].Parent := FMdiary.Rectangle1;
        ListViewArray.Box[i].IsBigState := False;
        ListViewArray.Box[i].ItemAppearanceName := TCustomListView.TAppearanceNames.ListItemRightDetail;
        ListViewArray.Box[i].ItemSpaces.Left := 0;        
        ListViewArray.Box[i].ItemSpaces.Right := 0;   
        ListViewArray.Box[i].HitTest := False;
        ListViewArray.Box[i].CanFocus := False;
      end;
    end;

 

//동적으로 생성된 TlistView 해제

procedure Do_Destroy;

    for i := 0 to ii do
      for ix := 1 to ixx do begin
        ListViewArray.Box[(i * ixx) + ix].Items.Clear;
        ListViewArray.Box[(i * ixx) + ix].Free;
        ListViewArray.Box[(i * ixx) + ix] := Nil;
      end;
    ListViewArray.free;

 

맨처음 프레임이 생성될때 Do_Create 해서 해당월에 해당하는 일자 만큼 Tlistview을 생성합니다.

 

다음달 또는 이전달을 클릭하면 Do_Destroy 로 기존 컴포넌트 해제하고 나서 

다시 Do_Create 해서 해당월에 해당하는 일자 만큼 Tlistview을 재생성합니다.

 

이코드가 Xe8 로 컴파일한 앱애서는 다음달, 이전달을 수십번 왔다갔다 해도

데이타까지 뿌려주는 작업 포함 2초 안에 해결됩니다.

하지만 XE10 에서는 다음달, 이전달을 왔다 갔다 할수록 현저히 느려집니다.

 

TlistView 해제가 안되는 것인지.?

 

Xe10.2.1 Tokyo 인데 왜 그런지 궁금합니다.

항상 감사합니다.


 

번호 제목 글쓴이 날짜 조회 수
공지 [프로그래밍 강의] 2021.6~2021.12 관리자 2015.01.22 20057
공지 유용한 관련 사이트 관리자2 2014.03.20 58962
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 102588
2099 GotoBookmark(pointer(DBGrid2.SelectedRows.Items[i])) 에러... [1] 왕초보 2018.03.16 500
2098 XE 버전과 호환가능한 Windows 버전 알려주세요....ㅜㅜ [5] soo583 2018.03.19 333
2097 델파이xe 10.2 윈도우10 설치시 Editor창 문자열 한글 크기가 너무 작아집니다. [1] file 미스터몽키 2018.03.17 1136
2096 [마이그레이션 세미나] 마이그레이션 시 발생했던 주요 이슈에 대한 다양한 사례를 좀 더 전달해 주시면 좋겠습니다. [1] 험프리 2015.11.24 238
2095 [마이그레이션 세미나] 마이그레이션 대체 무엇인가 험프리 2018.03.16 148
2094 [마이그레이션 세미나] V3에서 BDE충돌이 많아서 BDE말고 다른 방법으로 변경하고 싶습니다. 험프리 2018.03.16 155
2093 [마이그레이션 세미나] 파이어 몽키 버전으로 마이그레이션 시 고려해야될 사항들이 궁금합니다. 험프리 2018.03.16 116
2092 델파이 빌드 에러 [2] 웅재 2018.03.15 444
2091 datasnap 구현 미들웨어 세션 물고 있는 현상 [1] 생각 2018.03.15 319
2090 Android Target에서 외부 database 2티어 접속 [1] 허준영 2018.03.15 287
2089 Raize BizComps 관련 문의 사항 [1] 김정명 2018.03.13 155
2088 이미지 StretchDraw문 사용시 글자 깨져 다른 방법 좀 알려주세요? [1] 루카 2018.03.13 546
2087 XE7 OpenCV 이용시 질문 [1] judvika 2018.03.09 228
2086 Tokyo 10.2.2에서 안드로이드용 실행문제 [2] 스카이 2018.01.26 273
2085 divide by zero를 try catch 하는법 한시민 2018.03.08 313
2084 c++ Builder에도 메모리 릭을 감지할수 있는 툴이 있나요? [3] junho103 2018.03.06 615
2083 CPort 관련 에러 [1] file 양승현 2018.03.07 246
2082 델파이 XE CODE 1400 에러문의 [1] file 후두리찹찹 2018.03.06 251
» 동적생성한 컴퍼넌트 해제 질문입니다. [1] 희망나라 2018.02.28 261
2080 Serial 통신 에러 관련해서 문의드립니다. [1] 김제언 2018.03.05 173