Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

подсвечивание в ListBox

1.9K
03 сентября 2007 года
Solomon
70 / / 24.12.2003
Hi there,

не смог найти ничего кроме дорисовывания хинтов когда длина строки больше, чем самого листбокса. Мне же надо, чтобы при наведении мышки на строку ее цвет менялся. Думаю, что это надо делать в MouseMove однако как?

спасибо за любую инфу а лучше код )))))
3.2K
03 сентября 2007 года
nikipelovav
152 / / 12.04.2006
Код:
int IndexAtPos = -1;

void __fastcall TfTest::ListBox1DrawItem(TWinControl *Control, int Index,
      TRect &Rect, TOwnerDrawState State)
{
  // если перерисовка элемента под курсором мыши - зададим цвет фона
  if ( Index == IndexAtPos ) ListBox1->Canvas->Brush->Color = clRed;

  // отобразим текст элемента
  ListBox1->Canvas->TextRect( Rect, Rect.Left + 2, Rect.Top + 2,
                              ListBox1->Items->Strings[Index] );
}

void __fastcall TfTest::ListBox1MouseMove(TObject *Sender,
      TShiftState Shift, int X, int Y)
{
  // получим индекс элемента списка, находящегося под курсором мыши
  int Ind = ListBox1->ItemAtPos(Point(X,Y), true);

  // если новый индекс - запомним и перерисуем
  if ( IndexAtPos != Ind )
    {
      IndexAtPos = Ind; ListBox1->Repaint();
    }
}
16K
05 сентября 2007 года
AntidotE
45 / / 26.09.2006
я попробовал - у меня не выходит :(
видно, как помигивает - перерисовывается, но ничего не выделяется
пробовал на БЦБ 6.0

сейчас что-то своё подумаю...
3.2K
05 сентября 2007 года
nikipelovav
152 / / 12.04.2006
Важно установить свойство Style = lbOwnerDrawFixed
Только тогда активируется собственный обработчик перерисовки
OnDrawItem.
16K
06 сентября 2007 года
AntidotE
45 / / 26.09.2006
Супер, работает! :) Полезная фишка...
в следующий раз, не забывайте, пожалуйста, указывать, что где ещё менять ;)
92
06 сентября 2007 года
Тень Пса
2.2K / / 19.10.2006
Цитата: AntidotE
Супер, работает! :) Полезная фишка...
в следующий раз, не забывайте, пожалуйста, указывать, что где ещё менять ;)


не забывайте почитать справку )

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог