TCheckListBox колонки разной ширины
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
Сделал наследника, добился что колонки автосайзятся по ширине. Осталась одна проблема: при клике мышой выделяется тот пункт если бы размеры колонок были одинаковые
Весь башка уже сломал... Не могу понять кто и когда выставляет odSelected in State, ибо отрисовывается по факту этого свойства
Весь башка уже сломал... Не могу понять кто и когда выставляет odSelected in State, ибо отрисовывается по факту этого свойства
Албаните товарищ, ещё раз повнятней, можно с кодом.
[syntax=Delphi] [/syntax]
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
ща попробую
[ATTACH]1085[/ATTACH]
в сообщение не влезло...
Надо зарегичтрировать в систему, положить на форму, вбить в Items штуки 3 значения разной длины, включить AutoSizeColumns := true, выставить Columns := 3, запустить.
При выделении пункта мышой - выделяется не тот, на ком щёлкнули
[ATTACH]1085[/ATTACH]
в сообщение не влезло...
Надо зарегичтрировать в систему, положить на форму, вбить в Items штуки 3 значения разной длины, включить AutoSizeColumns := true, выставить Columns := 3, запустить.
При выделении пункта мышой - выделяется не тот, на ком щёлкнули
- Вложения
-
- DBCheckListBox.zip
- (2.55 КБ) 88 скачиваний
Сделай демку, для ленивых, чтоб сразу можно было тыкать
А точно не тот пункт выделяется или просто отрисовка шалит? (Значение забирается верно?)
А точно не тот пункт выделяется или просто отрисовка шалит? (Значение забирается верно?)
[syntax=Delphi] [/syntax]
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
фишка в том, что не понятно кто и когда выставляет флаг odSelected свойства State
А проца DrawItem родителя в зависимости от его значения рисует выделение.
Ща дему сделаю
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
[ATTACH]1086[/ATTACH]
для БДС2006, там группа = проект + пакет с компонентом.
вот зараза, на тестовом примере оказалось что мышой в чек попадает, а при задании значения в дизайнере правильно отрисовывается только самы первый чек. Ноги растут из одного места, пшёл ещё покопаюсь
А проца DrawItem родителя в зависимости от его значения рисует выделение.
Ща дему сделаю
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
[ATTACH]1086[/ATTACH]
для БДС2006, там группа = проект + пакет с компонентом.
вот зараза, на тестовом примере оказалось что мышой в чек попадает, а при задании значения в дизайнере правильно отрисовывается только самы первый чек. Ноги растут из одного места, пшёл ещё покопаюсь
- Вложения
-
- CLB.zip
- (8.3 КБ) 79 скачиваний
Не смог у себя запустить, при попытке добавить итемсы (ты юнит забыл положить) полезли ошибки - дивисион бу зерро, еще была про дефолтовое значение что-то там (тыкнул в ячейку высоты), у тебя соседние выделяются или вообще рандомные? Я думаю что это проблема вычисления, itemID div GetListBoxInfo(Self.Handle); GetListBoxInfo напомоему DWORD возвращает и не факт что при целочисленном делении запятая куда-нить не переедет, попроверяй цифры во всех местах..
[syntax=Delphi] [/syntax]
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
[ATTACH]1089[/ATTACH]
блинство, пересохранял в другой каталог и часть файлов зобыло...
ошибка там из-за того что по-дефолту стоит автоширина, а список пустой не проверяю - надо перед добавлением выключить автоширину
блинство, пересохранял в другой каталог и часть файлов зобыло...
ошибка там из-за того что по-дефолту стоит автоширина, а список пустой не проверяю - надо перед добавлением выключить автоширину
дык я и говорю, выделяется тот пункт как будто автосайз не стоит, т.е. в примере чтобы выделить п2 надо щёлкнуть на самой его правой части. Хотя клик по квадратику попадает в нужное место и правильно отрисовывается" писал(а):у тебя соседние выделяются или вообще рандомные?
- Вложения
-
- CLB.zip
- (11.71 КБ) 77 скачиваний
Spin, dxCntner,dxEditor, dxExEdtr, dxEdLib - not found
Запустил потыкал, однозначно вычисления длинны элементов храмают, к примеру на 3 элемент в 1 половине нажать выделется 2 элемент на 2 половине то что нужно. Если вечером не обламает поищу где косячит..
Запустил потыкал, однозначно вычисления длинны элементов храмают, к примеру на 3 элемент в 1 половине нажать выделется 2 элемент на 2 половине то что нужно. Если вечером не обламает поищу где косячит..
[syntax=Delphi] [/syntax]
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
всё что не найдено - убить (ступил) это просто едит для проверки отрисовки чеков при изменении значения на компоненте...
Там интересная фигня вылезает. Если без отладки - выделяется лажа и чеки не отрисовываются при смене значения, а в отладке вызывается дополнительная отрисовка и вроде нормально всё...
Там интересная фигня вылезает. Если без отладки - выделяется лажа и чеки не отрисовываются при смене значения, а в отладке вызывается дополнительная отрисовка и вроде нормально всё...
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
[ATTACH]1095[/ATTACH]
хм, частично таки сделал, путём банального присвоения Selected!
обновил, пофиксил пару багов. В архиве только один файл самого компонента. Теперь всё нормально при клике выделяется. Есть один забавный эффект... Если кнопку мыши нажать но не отпустить, выделение опять убегает на другой пункт.
хм, частично таки сделал, путём банального присвоения Selected!
обновил, пофиксил пару багов. В архиве только один файл самого компонента. Теперь всё нормально при клике выделяется. Есть один забавный эффект... Если кнопку мыши нажать но не отпустить, выделение опять убегает на другой пункт.
- Вложения
-
- DBCheckListBox.zip
- (2.8 КБ) 75 скачиваний