Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.06.2015, 19:02
Elza Elza вне форума
Новичок
 
Регистрация: 14.05.2011
Сообщения: 57
Репутация: 10
Смущение Связать listview и listbox

Вот так можно искать совпадения между 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  
Старый 03.06.2015, 19:28
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

циклом проверять все элементы ListBox
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 03.06.2015, 19:47
Elza Elza вне форума
Новичок
 
Регистрация: 14.05.2011
Сообщения: 57
Репутация: 10
По умолчанию

Так вроде работает, но как то рукожопно помоему
Код:
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;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:23.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025