vladman
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Chukotka Цитата: Подумав еще раз, соглашаюсь, таки 8 . Вы правы, считать же нужно уметь, этому еще в школе учат . Тогда моя функция GetCheckedCount не совсем корректна в общем случае. Сейчас что-то придумаю. Добавлено: Резюме по вопросу подсчета выбранных Itmes в cxCheckComboBox следующее. Хотелось сделать универсальную процедуру такого подсчета вне зависимости от значения свойства Properties.EditValueFormat, т.е. основываясь на значение <YourcxCheckComboBox>.Value. Но, оказывается, <YourcxCheckComboBox>.Value также зависит от Properties.EditValueFormat, а не является всегда целочисленным представлением, как написано в справке. Более того, если использовать Properties.EditValueFormat = cvfInteger, то количество Items ограничено 64 (больше - не помещается в Int64), об этом просто нужно помнить. Поэтому, для решения вопроса в общем случае, необходимо анализировать не значение <YourcxCheckComboBox>.Value, а воспользоваться функцией TcxCustomCheckComboBox.GetItemState, например: Код: function GetCheckedCount(ACheckComboBox: TcxCheckComboBox): Integer; var i: Integer; begin Result := 0; for i := 0 to ACheckComboBox.Properties.Items.Count - 1 do if ACheckComboBox.GetItemState(i) = cbsChecked then inc(Result); end; | Вызов - ShowMessage(IntToStr(GetCheckedCount(<YourcxCheckComboBox>))); | Всего записей: 708 | Зарегистр. 13-11-2002 | Отправлено: 12:38 20-11-2009 | Исправлено: vladman, 13:38 20-11-2009 |
|