Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2008, 21:58   #1
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию Отрисовка CheckListBox.

Есть checklistbox, периодически проверяю необходимость добавления горизонтального скролла в нём:
Код:
procedure TForm1.CheckHorzScroll;
var
  i, MaxWidth: integer;
begin
  MaxWidth := 0;
  for i := 0 to Vlist.Items.Count - 1 do
    if MaxWidth < Vlist.Canvas.TextWidth(Vlist.Items.Strings[i]) then
      MaxWidth := Vlist.Canvas.TextWidth(Vlist.Items.Strings[i]);
  SendMessage(Vlist.Handle, LB_SETHORIZONTALEXTENT, MaxWidth + 20, 0);
end;
Скролл появился. Проматываю максимально-вправо(так что сами Checkbox'ы не видны), потом потом проматываю максимально-влево(checkbox'ы видны), но так называемые "птички" у чекнутых строк отрисовываются как-то криво(см. вложение).
Причём если скролл прокручивать быстро, то всё отрисовывается ок, а если медленно--криво.
Какие есть варианты решения этой проблемы?

P.S. если каждые n мс делать CheckListBox.Repaint, то всё ок, но данный вариант не подходит.
Изображения
Тип файла: jpg Scroll+Check.jpg (45.6 Кб, 135 просмотров)
NikLik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Checklistbox RealSHELS Общие вопросы Delphi 3 30.07.2008 22:40
Отрисовка PNG с альфа-каналом на десктопе Whisper Помощь студентам 2 02.01.2008 19:24
CheckListBox ivp88 Компоненты Delphi 4 12.05.2007 15:49
Переключатели в CheckListBox ivp88 Компоненты Delphi 2 06.05.2007 09:12