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

Вниз

Прорисовка SubItems в ТListView   Найти похожие ветки 

 
Sorry   (2007-10-20 13:01) [0]

Добился прорисовки текста нужного мне субитема через ListViewMouseMove при наведении курсора, т.е. работает так: несколько колонок и в определенной колонке например 3 (subitems[2]) при на ведении курсора текст подсвечивается как веб-ссылка, а при удалении курсора должн стать обычным текстом.

Проблема в том, что не могу добиться возврата текста в обратное положение т.е. в преждний цвет и стиль. Кде нужно обрабатывать код для возврата ListViewMouseMove или ListViewAdvancedCustomDrawSubItem? Не совсем ясен порядок их работы?

есть код:

procedure TForm1.ListViewMouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
Var
 Rect: TRect;
 ItemIndex,SubItem, i,WL,WR: Integer;
 LI: TListItem;
 LV: TListView;
begin
 LV:=TListView(Sender);
 LI:=LV.GetItemAt(X,Y);
 WR:=0;
 WL:=0;
 if LI <> Nil then begin

   ItemIndex:=LV.GetItemAt(X,Y).Index;
   Rect:=LI.DisplayRect(drIcon);

   for i:=0 to LV.Columns.Count -2 do begin
     WL:=WL+LV.Column[i].Width;
     WR:=WL+LV.Column[i+1].Width;
     if (X > WL) and (X < WR) then begin
       SubItem:=I;
       Break;
     end;
   end;
   
   if SubItem = 2 then begin
   
     for i:=0 to SubItem do Rect.Left := Rect.Left + LV.Column[i].Width;

     Rect.Right := Rect.Left + LV.Column[SubItem+1].Width;
     Inc(Rect.Left,5);
     LV.Canvas.FillRect(Rect);
     LV.Canvas.Font.Style := [fsUnderline];
     LV.Canvas.Font.Color := clBlue;  
     DrawText(LV.Canvas.Handle, PChar(LV.Items[ItemIndex].SubItems[SubItem]),
              Length(LV.Items[ItemIndex].SubItems[SubItem]), Rect,
              DT_WORDBREAK
              OR DT_END_ELLIPSIS
              OR DT_Left
              OR DT_VCENTER
              OR DT_NOPREFIX);
   end;
 end;


 
guav ©   (2007-10-20 22:19) [1]

Предлагаю рисовать в OnCustomDrawSubItem, в MouseMove при попадании в SubItem делать Invalidate Rect"a этого SubItem"а и запоминать этот Item, если вышли из этого SubItem"а - снова Invalidate.



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

Форум: "Начинающим";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.053 c
2-1192706459
apic
2007-10-18 15:20
2007.11.11
Курсор


2-1192512037
saintninja
2007-10-16 09:20
2007.11.11
Работа Без VCL


15-1191414639
Elen
2007-10-03 16:30
2007.11.11
Несовместимость нового железа и старого софта.


2-1192606931
ari_9
2007-10-17 11:42
2007.11.11
в run-time расположить отн. друг друга комп. с одинаковым align


6-1173690061
Sairex
2007-03-12 12:01
2007.11.11
Помогите разобраться с Mrim (Agent.mail.ru)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский