Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.27;
Скачать: CL | DM;

Вниз

CustomDraw в TListView   Найти похожие ветки 

 
Zelius ©   (2005-10-31 16:18) [0]

Хочу отрисовать ListView по своему, изменить не только фон и цвет, но в некоторых полях выводить половину текста на одном фоне, а вторую на другом. Для этого перехватываю CustomDrawItem:

procedure TSearchF.ResultViewLVCustomDrawItem(  Sender: TCustomListView;
 Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);

 procedure DrawText( const aText: String; aRect: TRect);
 var DrawUnits: TSearchTextDrawUnits;
 begin
   if TextContainsWords( Item.Caption, DrawUnits) then
   begin
     {ïîêà îòêëþ÷åíî}
   end
   else
   begin
     Sender.Canvas.Font.Color := clBlack;
     Sender.Canvas.TextRect( aRect, aRect.Left+1, aRect.Top+1, aText);
   end;
 end;

var
 i: Integer;
 R: TRect;
begin
 OutputDebugString("CustomDrawItem");

 DefaultDraw := False;

 if cdsSelected in State then
   Sender.Canvas.Brush.Color := $00F3C8BE
 else
   if (Item.Index mod 2) = 1 then Sender.Canvas.Brush.Color := clWhite
                             else Sender.Canvas.Brush.Color := $00FAE9E4;

 r := Item.DisplayRect(drBounds);

 for i := 0 to TspSkinListView(Sender).Columns.Count-1 do
 begin
   r.Right := r.Left + TspSkinListView(Sender).Columns[i].Width;
   if i = 0 then DrawText( Item.Caption, r)
            else DrawText( Item.SubItems[i-1], r);
   r.Left := r.Right;
 end;
end;

Все работает нормально, но при изменениии размера колонок начинаются глюки, не правильно отрабатывает стирание открываемых областей и из-за этого на экране появляется мусор. Подскажите, как этого избежать? Спасибо!


 
Sergey_r ©   (2005-11-01 05:58) [1]

На OnResize повесь стирание канваса и перерисовывай заново



Страницы: 1 вся ветка

Текущий архив: 2005.11.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
14-1130841096
Андрей Жук
2005-11-01 13:31
2005.11.27
Внимание, фраза


14-1130871615
Некто
2005-11-01 22:00
2005.11.27
МУПы это пережиток соц. прошлого


2-1131802956
zxc
2005-11-12 16:42
2005.11.27
Народ подскажите неопытному


14-1131446476
Аноним
2005-11-08 13:41
2005.11.27
Аномальное явление?


14-1131116793
DeCode
2005-11-04 18:06
2005.11.27
Проблема с установкой ХР