Вверх ↑
Ответов: 5446
Рейтинг: 323
#1: 2007-04-15 15:28:44 ЛС | профиль | цитата
Tad, а чего тут удивительного? Фишка вот в чём: для doSelectString используется следующий код:


procedure THIListBox._work_doSelectString;
begin
SendMessage(Control.Handle,LB_SELECTSTRING,-1,integer(PChar(ToString(_Data))));
end;

Далее, заглядываем в Init:

   if _prop_MultiSelect then
Include(Fl,loMultiSelect);
Замечу, что наш loMultiSelect есть аналог сишного LBS_MULTIPLESEL

А теперь почитаем, что дядя Билли пишет про LB_SELECTSTRING


Remarks

The list box is scrolled, if necessary, to bring the selected item into view.

Do not use this message with a list box that has the LBS_MULTIPLESEL or the LBS_EXTENDEDSEL styles.


То еть мы не имеем права при MultiSelect=true посылать это сообщение...


Galkov, добавь в фиксы, чтоли...

[size=-2]------ Добавлено в 15:28
Galkov, ещё фиксы:

1. Заполнение массива ItemSelected по doSelectAll
2. В doSelect выполняем
 Control.CurIndex := -1 [/code] только для не-multiselect случая
3. Реализация doSelectString для multiselect случая

diff прилагается...

Кстати, ничего что я выкладываю diff-ы?? Или может лучше правленые файлы с пометками вида
//!!![/code], или upd-файлы для KOL-овского Updater-а?
карма: 1

0
файлы: 1hiListBox.zip [614B] [333]