Dla ComboBox i ListBox pojedynczego wyboru, możesz dokonać selekcji przypisując numer do właściwości ItemIndex. Przypisanie zera powoduje wybranie pierwszej pozycji. Przypisując -1 anulujesz selekcję wszystkich pozycji.
// przykłady jednokrotnego wyboru z ListBox ListBox1->ItemIndex = 0; // wybiera pierwszą pozycję ListBox1->ItemIndex = 2; // wybiera trzecią pozycję ListBox1->ItemIndex++; // wybiera kolejną pozycję ListBox1->ItemIndex = -1; // odznacza wszystkie pozycjeLepiej jednak wybierać pozycję ze względu na określony łańcuch tekstowy, używając funkcji IndexOf, która zwraca indeks łańcucha i przypisując ten indeks do właściwości ItemIndex. Wybranie pozycji z tekstem "To przykład" wyglądałoby tak:
ListBox1->ItemIndex = ListBox1->Items->IndexOf("To przykład");Dla ListBox wielokrotnego wyboru zaznaczasz i odznaczasz pozycję poprzez czytanie i zapisywanie do właściwości Selected. Właściwość ta funkcjonuje jako tablica danych typu bool. Indeks tablicy odpowiada indeksowi pozycji w ListBox. Aby wybrać pozycje ustaw Selected[indeks] na true. Poniżej są tego przykłady.
// przykłady wielokrotnego wyboru z ListBox ListBox1->Selected[0] = true; // dodaje pierwszą pozycję do selekcji ListBox1->Selected[0] = false; // usuwa pierwszą pozycję z wybranych // przełącza dziesiątą pozycję ListBox1->Selected[9] = !ListBox1->Selected[9] // zaznacza zakres pozycji (11-19) for (int j=10; j<=19; j++) ListBox1->Selected[j] = true;Uwaga: Czytając wartość tablicy Selected kontrolki ListBox wielokrotnego wyboru dowiadujesz się czy pozycja jest aktualnie wybrana. Wartość true oznacza, że pozycja jest wybrana, false, że nie. Zapisując do tablicy Selected ustawiasz stan wyboru odpowiedniej pozycji. Zaznaczasz pozycję poprzez ustawienie na true, a odznaczasz ustawiając na false. Czytanie i pisanie do jednej pozycji ListBox nie wpływa na inne. Uwaga: Nie używaj tablicy Selected w ListBox jednokrotnego wyboru. Uwaga: W ListBox wielokrotnego wyboru możesz odczytać właściwość ItemIndex aby dowiedzieć się która pozycja jest aktualnie aktywna. Jednakże przypisanie wartości do ItemIndex nie ma tu żadnego efektu. Kiedy zapisujesz wartość do ItemIndex, VCL wysyła komunikat LB_SETCURSEL do ListBox. ListBox wielokrotnego wyboru ignoruje ten komunikat. |