![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Вот так можно искать совпадения между edit и listview
Код:
var rct:TRECT; i: integer; s:ShortString; const LVM_GETITEMRECT=4110; LVIR_BOUNDS=0; begin for i:=0 to Listview1.Items.Count-1 do begin s:=Ansiuppercase(system.Copy(Listview1.Items[i].SubItems[0],0,length(edit1.Text))); if Ansiuppercase(Edit1.text)=s then begin LVFORUM.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; Подскажите, как сделать, чтобы вместо edit-а совпадения искались в любой из строк listbox-а |
#2
|
||||
|
||||
![]() циклом проверять все элементы ListBox
Пишу программы за еду. __________________ |
#3
|
|||
|
|||
![]() Так вроде работает, но как то рукожопно помоему
![]() Код:
var rct:TRECT; i,p: integer; s:ShortString; u:string; const LVM_GETITEMRECT=4110; LVIR_BOUNDS=0; begin for i:=0 to Listview1.Items.Count-1 do for p:=ListBox1.Items.Count-1 downto 0 do begin u:=ListBase.Items[p]; s:=Ansiuppercase(system.Copy(First.Listview1.Items[i].SubItems[0],0,length(u))); if Ansiuppercase(u)=s then begin LVFORUM.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; end; |