|
그기능이 왜 Virtual 인지는 모르겠지만
OwnerData 를 true 로하고 items->Count 에 값을 넣어주면
ondata 이벤트가 발생됩니다.
이 이벤트의 index 값을 근거로 거기에 맞는 데이타를 넣어주는 방식인데요..
이방법을 쓰는이유는 통상 add()로 데이터를 넣게되면 약 2000 개이상 들어가면
상당이 시간이 많아걸리죠..
근데 이와같은 방법을 쓰면 화면에 표시될 데이터가 필요할때 ondata 이벤트에서
데이터를 불러오니까 많은데이타라 할지라도
시간이 걸릴이유가 없읍니다.
물론 데이터가 index를 근거로 불러오는 형태이어야
사용할수있겠지요(이미 배열에들어 있다던가 등등...)
예) 버튼을 누르면 0 ~ 백만까지의 ListView 가 0.1 초내에 끝.
OwnerData = true 로 하시구요.
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListView1Data(TObject *Sender, TListItem *Item)
{
Item->Caption=Item->Index;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
ListView1->Items->Count=1000001;
}
//---------------------------------------------------------------------------
kobetime 님이 쓰신 글 :
: ListView의 Property를 보면 OwnerData가 있습니다.
:
: 이를 true로 설정하면 Virtual ListView를 구현하게 된다고 하는데,
:
: Virtual ListView가 ListView와 다른점이 뭐죠?
:
|