![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TListBox
NLO © (2002-01-11 07:16:00)Задача такая.
кидаю на форму Edit и ListBox в Edit ввожу текст, нужно чтобы в ListBox производился поиск этой подстроки и на нее сделать фокус.
Сергей Иванов (2002-01-11 14:23:00) [1]//А так не пробовал?
ListBox1.Perform(LB_SELECTSTRING,-1,longint(Pchar(Edit1.text)));
Mbo (2002-01-11 13:24:00) [2]listbox1.Selected[i]:=true;
NLO (2002-01-11 13:09:00) [3]Все работает если свойство MultiSelect стоит в false, а как только включишь все не позиционирует
Mbo (2002-01-11 13:02:00) [4]что не работает?
подходящая строка находится.
что дальше-то делать надо?
NLO (2002-01-11 12:44:00) [5]Хотя это не работает если свойство MultiSelect стоит в true, как быть ?
NLO (2002-01-11 12:20:00) [6]Спасибо большое ! Все ОК.
MBo (2002-01-11 08:25:00) [7]>nlo
так ты ж и спрашивал
>на нее сделать фокус.
если не надо, то убери
ListBox1.SetFocus;
и скомбинируй с тем, как у gek
gek (2002-01-11 07:32:00) [8]>> Mbo
Да ты прав, согласен, если искать подстроку
NLO (2002-01-11 07:31:00) [9]Я вот попробовал, забиваю туда в едит строку. все он ищет но переводит фокус на листбох а мне мож еще надо кой какие символы забить
Mbo (2002-01-11 07:26:00) [10]видимо,не совсем то - найдется только полная строка
если надо именно подстроку - придется пробегать список
for i:= 0 to ListBox1.Items.Count-1 do
if pos(Edit1.Text,ListBox.Items[i])>0 then begin
ListBox1.SetFocus;
ListBox1.ItemIndex:=i;
Break;
end;
gek (2002-01-11 07:21:00) [11]if ListBox_.Items.IndexOf(Edit_.Text) < 0 then
Showmessae("не найден")
else
begin
Showmessae("найден")
edit_.setfocus;
end;