SelCount w CheckListBox zwraca zawsze -1

0

Witam ;-)

Mały problemik

Mam sobie na formie CheckListBox. Działa OK poza jedną rzeczą - SelCount zawsze zwraca -1, nawet jeśli są zaznaczone elementy (nie ważne, czy cbGrayed, czy cbChecked).

SelCount chciałem wykorzystać, aby sprawdzić czy przepadkiem ktoś nie zapomniał pozaznaczać opcji. Gdyby zwróciło -1 - nie zaznaczono nic i byłoby OK, ale tu zawsze zwraca -1 kurcze pieczone [!!!]

  1. Ma ktoś pomysł jak zmusić SelCount do poprawnego zliczania zaznaczonych elementów CheckListBox-a?
  2. Jeśli nie - jak sprawdzić, czy w CheckListBox nie zaznaczono nic i w związku z tym przerwać dalsze działanie (tzn. if nie zaznaczono nic then nic się nie zadzieje)
1

SelCount is read-only. Use SelCount to find the number of selected items in the list box when the MultiSelect property is true.

When the MultiSelect property is false, SelCount is always –1.

var
 i :Word;
 IsEmpty :Boolean;
begin
 IsEmpty := True;
 for i := 0 to CheckListBox1.Items.Count-1 do
   if CheckListBox1.Checked[i] then
      begin
        IsEmpty := False;
        Break;
      end;
  if IsEmpty Then ShowMessage('Nie zaznaczyłeś żadnej opcji');
end;
0

Dzięki, oczywiście wszystko działa (dodałem tylko pętelkę do sprawdzania cbGrayed, bo w wersji powyższej sprawdza tylko cbChecked)

Sprawdziłem też ten SelCount - faktycznie wszystko się zgadza - przy MultiSelect działa OK (tylko nie takie zaznaczenie miałem na myśli ;-) )

W podzięce wirtualny browarek [browar] ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1