Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.24;
Скачать: CL | DM;

Вниз

SelStart всегда равен 0 в KOLListBox   Найти похожие ветки 

 
TAHKEP   (2006-11-08 18:23) [0]

Решил попробовать KOL (KOL 2.41a в Delphi 7) и столкнулся с такой проблемой -- простейшая задачка -- есть ListBox (все опции по умолчанию) со списком элементов, пользователь выделяет несколько из них подряд с помощью Shift и кликает на кнопку, что бы их удалить. Вроде бы всё просто -- начиная с позиции SelStart надо удалить SelLength элементов, а ничего не выходит т.к. SelStart почему-то всегда 0 (ноль) :( Для проверки написал обработчик для OnSelChange, чтоб по этому событию в memo выводились SelStart и SetLength -- с SelLength полный порядок, SelStart всегда ноль.

Что не так делаю?
Помогите пожалуйста, заранее спасибо за ответ.


 
Vladimir Kladov   (2006-11-08 19:20) [1]

не выйдет. в listbox"е нет возможности получить диапазон, просто потому, что выделить можно любый элементы. Надо в комментариях поправить. Или в цикле по очереди идти по всем элементам и узнавать выделен он или нет, или посылать сообщение LB_GETSELITEMS и принимать список всех выделенных в свой буфер. SelLength однако работает, правильно сообщает, сколько всего выделено.


 
TAHKEP   (2006-11-09 12:51) [2]

Спасибо, Владимир!

Если можно еще вопросик по KOLListBOx. Если правильно понял, аналогом ItemIndex в ListBox VCL в KOLListBox является CurIndex, так?  Но тогда, при создании KOLListBox получается, что в и пустом списке CurIndex равен нулю, (т.е. указывает на несуществующий нулевой элемент списка), и в списке содержащем всего один элемент CurIndex тоже равен нулю. Тоже самое, кажется, и в случае если вообще ни один элемент списка не выбран -- CurIndex=0, т.е. получается нулевой элемент всё-таки неявно выбран. Баг, фича, или у меня неправильное представление о назначении CurIndex?
М.б. стоит сделать, что бы если ни один элемент списка не выбран или список пуст, то CurIndex был бы равен -1 (минус единице),  т.е. вел бы себя как ItemIndex в VCL?


 
Vladimir Kladov   (2006-11-09 20:03) [3]

Что LB_GETCURSEL возвращает, то и даю. Он возвращает 0, и что еще я должен сделать? Сами проверьте, что элементов нет. CurIndex - это вроде как индекс элемента в фокусе, а не выделенного элемента. В фокусе может быть совсем не выделенный элемент.



Страницы: 1 вся ветка

Текущий архив: 2007.06.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
15-1179776896
Real
2007-05-21 23:48
2007.06.24
А какой у вас был НЕ первый Hello World?


4-1168463934
Шоломицкий С. А.
2007-01-11 00:18
2007.06.24
Нажать кнопу в окне продолжения печати


4-1168961302
TProgrammer
2007-01-16 18:28
2007.06.24
Приоритет процессов


15-1180034182
flaxe
2007-05-24 23:16
2007.06.24
Срочно Лаба, завтра сдавать, маленьткий вопросик)


2-1180793081
Anna_Roza
2007-06-02 18:04
2007.06.24
TTable путешествия по строкам