我想在列表框1中查找文本。这是我写的代码:
Var
i:integer;
Begin
i:=listbox1.Items.IndexOf(edit1.Text);
listbix1.ItemIndex:=i;
End;
,但是当我在edit1中写入确切的文本时,该项目将突出显示。例如,如果我编写appl,Apple不会突出显示。如果listbox1中有2个苹果,则仅突出显示其中一个。 一个好的搜索应该如何写?
答案 0 :(得分:0)
Selected
功能并将所需的项转换为选定的项。MultiSelect
上设置列表框的True
属性。onChange
事件中使用下面的代码(当您要求“良好搜索”时,我在搜索中添加了一些可选部分,您可以忽略它们,并使用没有它们的代码)< / em>:-
Var
i, search_count: Integer;
search_str, search_item: String;
begin
search_count := 0;
search_str := edit_search.Text;
for i := 0 to listBox.Count - 1 do begin
search_item := listBox.Items[i];
if not chk_case.Checked then begin
search_str := LowerCase(search_str);
search_item := LowerCase(search_item);
end;
if pos(search_str, search_item) > 0 then begin
listBox.Selected[i] := True;
Inc(search_count);
end else
listBox.Selected[i] := False;
end;
lbl_count.Caption := IntToStr(search_count) + ' items found.';
end;
我不知道为什么,但是第一次当我尝试插入代码时,StackOverflow对我来说无法正常工作,因此我也从代码行中添加了一个屏幕截图: < / p>