TCheckListBox получить проверенный элемент

У меня простой вопрос. Как получить количество проверенных элементов в CheckBoxListBox без использования цикла?

2 ответа

Решение

TCheckListBox не предоставляет вариант, который вы ищете. Цикл через его Checked[] собственность обязательна.

Если бы вы использовали Delphi, вы могли бы создать вспомогательный класс, чтобы скрыть этот цикл. Но помощники класса не доступны в C++.

Вы можете использовать такую ​​функцию.

function GetCheckedCount(CH:TCheckListBox):Integer;
var I:Integer;
begin
   Result := 0;
    for i := 0 to ch.Items.Count - 1 do
      if ch.Checked[i] then inc(result);
end;

Кроме того, SelCount - это количество "выбранных" элементов, когда MultiSelect имеет значение true, а не количество "отмеченных " элементов.

В Delphi вы можете [*] сделать следующее:

TCustomMultiSelectListControl(TheBox).MultiSelect := True;

и тогда SelCount работает:

CountOfCheckedItems := TheBox.SelCount;

Разве эквивалент не возможен в C++?

[*] Хотя это вызывает другие проблемы.

Другие вопросы по тегам