자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 17220
공지 유용한 관련 사이트 관리자2 2014.03.20 56090
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 99532
2099 XE2 -> XE10 으로 컴파일만 다시했는데...오류가 납니다. 파란하늘 2016.01.13 102
2098 구글 새 OS 안드로이드 N, 5월 공개대해.. 가을이다 2016.01.13 255
2097 (Delphi 10) UPX 압축 문제 [1] 김재욱 2016.01.14 389
2096 XE2에서 SFTP를 사용하려고합니다. 링쿠 2016.01.14 399
2095 Exception EFilerError in module rtl190.bpl at 000FF30F 에러가 납니다. 쭈니쿤 2016.01.15 367
2094 바코드 리더기로부터 오는 값을 입력받지 않게 하는 방법 문의요 [1] from5 2016.01.15 301
2093 DB에 이미지 등록 syc 2016.01.15 625
2092 FormatDateTime 함수 사용시. [3] 공감 2016.01.18 1122
2091 Device Manager에서 Device 추가시.... [1] 황규섭 2016.01.18 132
2090 fmx에서 다국어 지원하려면?? [3] file 라드 2016.01.18 273
2089 Delphi 2010 사용 중 갑자기 예약어에 밑줄이 생겼습니다. [1] file 델파이 2016.01.18 183
2088 Android App개발에서 Memo장 내용 File저장하기 [1] 아기사랑 2016.01.18 615
2087 XE8 (VCL)에서는 그림회전 [1] file barcode0 2016.01.18 342
2086 XE7 컴포넌트 문의 드립니다. sue 2016.01.18 174
2085 [ldandroid Error] 시애틀 안드로이드 빌드 에러. file RumAndCoke 2016.01.20 247
2084 Apps must follow the iOS Data Storage Guidelines or they will be rejected silkroad99 2016.01.20 249
2083 사용자 지정 텍스트 크기(DPI) 설정. [1] file 김재욱 2016.01.22 1485
2082 Access Violation at address 0040B508... 질문드립니다. ^^ [1] 쭈니쿤 2016.01.22 2927
2081 [Q]Delphi 5, 7의 Oracle 12c 지원 문의 [2] 지롱 2016.01.27 412
2080 RESTClient에서 POST가 안되요!!! [1] 카이로스 2016.01.27 1267