Главная страница
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.026 c
14-1130911527
Ega23
2005-11-02 09:05
2005.11.27
С днем рождения! 2 ноября


2-1131459064
dj0n
2005-11-08 17:11
2005.11.27
как сделать чтобы прога т.е. БД шла на всех Ос??


3-1129397442
Piter
2005-10-15 21:30
2005.11.27
TIBDatabase - потокобезопасен?


14-1131179091
ArtemESC
2005-11-05 11:24
2005.11.27
программа


2-1131821210
kami
2005-11-12 21:46
2005.11.27
Ничего не понимаю... MemProof - unfreeded VirtualAlloc