TListBox
25.07.1999
  • Dodawanie pozycji do ListBox w czasie pracy programu.

      Kontrolka ListView dostarcza przyjazny interfejs do wprowadzania pozycji w fazie projektowania. Jednakże będziesz zwykle potrzebował wypełniać ListView opierając się na informacji podczas pracy programu. Poniższy fragment kodu pokazuje jak stworzyć pozycje (Item) i sub-pozycje (Subitem) przy pomocy kodu. Na formie umieść kontrolkę ListView1, ustaw ViewStyle na vsReport, dodaj trzy kolumny, ewentualnie ImageList i skojarz ją z ListView1 (właściwości SmallImages i LargeImages).

 int NumEntries = 20;
    TListItem *NewEntry;
    ListView1->Items->BeginUpdate();
    ListView1->Items->Clear();
    for (int j=0; j < NumEntries; j++)
    {
        NewEntry = ListView1->Items->Add();
        NewEntry->Caption = "Item " + IntToStr(j);
        NewEntry->SubItems->Add("column 2");
        NewEntry->SubItems->Add("column 3");
        //NewEntry->ImageIndex = j;         // wymaga ImageList
    }
    ListView1->Items->EndUpdate();

Uwaga: Funkcja BeginUpdate zapobiega migotaniu kontrolki ListView podczas dodawania pozycji. Zarówno TListBox, jak i TListView zapewniają tą funkcję, żebyś mógł opanować migotanie podczas manipulowania zawartością kontrolek. EndUpdate wysyła sygnał, że skończyłeś zmianę zawartości i kontrolka powinna teraz "przemalować się".

Uwaga: Wskaźnik do TListItem otrzymujesz wywołując funkcję Add, a nie bespośrednio poprzez operator new.

Uwaga: Charakter nowej pozycji zmieniasz dopiero po wywołaniu funkcji Add.

Uwaga: Łańcuch Caption pojawia się zawsze przy ikonce pozycji, bez względu na ustawienie właściwości ViewStyle. Sub-pozycja pojawia się w oddzielnej kolumnie, kiedy ViewStyle ustawiony jest na vsReport. W innych trybach sub-pozycje są niewidoczne.