![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Не могу понять как искать определёный текст в listview, единственное что нашёл так это вот http://www.delphisources.ru/pages/fa...arch_text.html, но не работает
![]() |
#2
|
||||
|
||||
![]() Проверил код работает как часы
Нет ничего не возможного. Вопрос только во времени... Последний раз редактировалось Electronic_Arts, 27.10.2010 в 19:37. |
#3
|
||||
|
||||
![]() Вот держи рабочий вариант
Код:
procedure LV_FindAndSelectItems(lv: TListView; const S: string; column: Integer); var i: Integer; found: Boolean; lvItem: TListItem; begin Assert(Assigned(lv)); Assert((lv.ViewStyle = vsReport) or (column = 0)); Assert(S <> ''); for i := 0 to lv.Items.Count - 1 do begin lvItem := lv.Items[i]; if column = 0 then found := AnsiCompareText(lvItem.Caption, S) = 0 else if column > 0 then begin if lvItem.SubItems.Count >= Column then found := AnsiCompareText(lvItem.SubItems[column - 1], S) = 0 else found := False; end else found := False; if found then begin lv.Selected := lvItem; end; end; end; Код:
var rct:TRECT; i: integer; const LVM_GETITEMRECT=4110; LVIR_BOUNDS=0; begin for i:=0 to ListView1.Items.Count-1 do begin If pos('Текст', ListView1.Items[i].Caption)>0 then begin ListView1.Selected:=ListView1.Items[i]; rct.Left:=0; SendMessage(ListView1.Handle,LVM_GETITEMRECT,0,integer(@rct)); ListView1.Scroll(0,(i-ListView1.TopItem.Index)*(rct.Bottom-rct.Top)); end; end; Нет ничего не возможного. Вопрос только во времени... |