Jeśli właściwość ListView1->OwnerData = true; wczytywanie nawet 200.000 lini danych wykonuje się bardzo szybko co realizuje następującym kodem:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ListView1->OwnerData = true;
ListView1->OnData = ListView1Data;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
int elementow ;
OpenTextFileDialog1->Filter = "Pliki TXT *.txt|*.txt|";
OpenTextFileDialog1->DefaultExt = "txt";
if(OpenTextFileDialog1->Execute())
{
ListView1->Clear();
Memo1->Clear();
String plik = OpenTextFileDialog1->FileName;
ListaVirt = new TStringList();
ListaVirt->LoadFromFile(plik);
elementow = ListaVirt->Count;
ListView1->Items->Count = elementow;
StatusBar1->Panels->Items[0]->Text="Lista zawiera "+IntToStr(elementow)+" adresów";
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListView1Data(TObject *Sender, TListItem *Item)
{
Item->Caption = (String) Item->Index;
Item->SubItems->Add(ListaVirt->Strings[Item->Index].Trim());
Item->SubItems->Add("---");
Item->SubItems->Add("---");
Item->SubItems->Add("---");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListView1Click(TObject *Sender)
{
if(ListView1->Selected )
{
int nrNaListViev = ListView1->Selected->Index;
Memo1->Lines->Add(ListView1->Items->Item[nrNaListViev]->SubItems->Strings[0]);
ListView1->Items->Item[nrNaListViev]->SubItems->Strings[1] = "OK";
}
}
Ale w jaki sposób zmienić przykładowo dane w trzeciej kolumnie które po wczytania zawierają " --- " na np "sprawdzony".
Takie coś nie działa
{
ListView1->Items->Item[0]->SubItems->Strings[1] = "Sprawdzony";
}
Proszę o pomoc.....