Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > CustomDraw в TListView


Автор: Comm 21.2.2009, 20:02
Всем привет)

ViewStyle=vsReports
RowSelect=true

В общем задача такая,  нужно нарисовать своё (не стандартное) выделение при щелчке на одной из строк.

Чтобы сначала рисовалось выделение (если строка выделена)  а только потом рисовались картинки и текст. Я просто запутался в обработчиках прорисовки,их там штук 5

Да,и как ещё вычислить границы (Rect.left /Rect.top) для прорисовки выделения,и в каком лучше обработчике эти все вычисления выполнять?

Спасибо за внимание)


Автор: SVN74 22.2.2009, 01:23
Возможно не по теме....
Заранее необходимо подключить в ListView  ImageList с нужными рисунками.

Код

void __fastcall TForm1::ListView1SelectItem(TObject *Sender,
      TListItem *Item, bool Selected)
{
 if(Selected==true)
  {
    // Фиксируем выбор здесь
  }
}
// Здесь для установки или замены рисунка необходимо указать номер сроки (Index)   
// и номер рисунка и ImageList(а)
//----------------------------------------------------------------
void __fastcall TForm1::ImageChange(int _Index, int _Icon)
{
   TListItem *UList = this->ListView1->Items->Item[_Index];
   UList->ImageIndex=_Icon;
}
//----------------------------------------------------------------
// Тоже самое, но с углублением в список
void __fastcall TForm1::SubImageChange(int _Index, int SubNum, int _Icon)
{
   TListItem *UList;
   UList=this->ListView1->Items->Item[_Index];
   UList->SubItemImages[SubNum]=_Icon;
}

Ну а для собственных художеств благо есть Image1->Canvas...
 

Автор: Comm 22.2.2009, 07:29
Это безусловно поможет в моей роботе с картинками,спасибо)))
Но вопрос ещё открыт.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)