Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.019 c
2-1131697453
Perf2k2
2005-11-11 11:24
2005.11.27
DateTimePicker - нужно, чтобы он был пустым


6-1123928891
0n!k
2005-08-13 14:28
2005.11.27
clientsocket no API ASync Lookup


2-1131361359
Ольга
2005-11-07 14:02
2005.11.27
Формирование строки


14-1131096685
Pazitron_Brain
2005-11-04 12:31
2005.11.27
Проблемы с железом #2


6-1124122565
Vasiliy
2005-08-15 20:16
2005.11.27
idFTP + Proxy = Любовь и согласие :-(





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский