자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
  • 제품설치/등록 오류 문의: 설치/등록 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 17218
공지 유용한 관련 사이트 관리자2 2014.03.20 56089
공지 본 게시판은 개발자 여러분들의 질문과 답변을 공유하는 공간입니다. 관리자 2012.01.10 99530
2239 [공유] 라이브바인딩으로 날짜필드를 연결할때 포맷을 지정할 수 있나요? file 험프리 2015.10.21 402
2238 [마이그레이션][델파이6>델파이XE8] 델파이 6으로 개발 된 프로그램을 XE8로 컨버젼 한 후 실행 오류 [1] file 똘귀아빠 2015.10.23 329
2237 [마이그레이션][델파이6>델파이XE8] 프로젝트를 오픈하면 메세지가 뜨는 원인 [1] file 똘귀아빠 2015.10.23 284
2236 콤보박스를 바인딩에서 연결하는 방법을 알려주세요. [2] file 거북이 2015.10.23 504
2235 컴포넌트 사용 관련 [1] 똘귀아빠 2015.10.23 104
2234 ios 개발시 please specify exact device preset uuid [1] kerry 2015.10.25 386
2233 ClientDataSet을 XML로 저장시 [1] 라시드 2015.10.26 386
2232 [공유] LG G 패드 8.3(안드로이드 4.2.2)에서 델파이로 만든 앱을 테스트할 수 있는 방법이 있을까요? 험프리 2015.10.26 910
2231 MDI Child Dll [2] 라시드 2015.10.26 359
2230 param까지 맵핑된 SQL문을 출력할수 있나요? [1] 고고고 2015.10.27 459
2229 try catch가 작동하지 않는 현상 [1] 고고고 2015.10.27 448
2228 [공유] 스트링그리드(TStringGrid)를 정렬하고 싶어요. file 험프리 2015.10.27 2085
2227 ClientDataSet open 안드로이드는 문제없이 돌아가는데 ios에서 아래 메세지가 뜹니다. [1] kerry 2015.10.27 134
2226 ClientDataSet open 맥 simumlator error 이미지입니다. [1] file kerry 2015.10.27 205
2225 델파이 C/S프로그램을 웹으로 전환해서 보여주는 방법 연일하 2015.10.28 2688
2224 ClientDataSet open ios에서 midas Libary 추가했는데도 같은 메세시지 가 뜸니다. [1] kerry 2015.10.28 189
2223 글자 깨짐 [2] 똘귀아빠 2015.10.28 358
2222 평가판 사용중 문제발생으로 문의 드렸던 내용입니다. [3] file 나도몰라 2015.10.28 241
2221 TFDMemTable ios 에서 한글문제 있나요? [3] kerry 2015.10.28 146
2220 안드로이드 개발시 TComboBox 폰트 적용을 어떻게 하나요? [4] 광땡 2015.10.28 355