搜索列表框项

时间:2019-12-30 15:15:15

标签: delphi listbox delphi-10.3-rio

我想在列表框1中查找文本。这是我写的代码:

Var
  i:integer;
Begin
  i:=listbox1.Items.IndexOf(edit1.Text);
  listbix1.ItemIndex:=i;
End;

,但是当我在edit1中写入确切的文本时,该项目将突出显示。例如,如果我编写appl,Apple不会突出显示。如果listbox1中有2个苹果,则仅突出显示其中一个。 一个好的搜索应该如何写?

1 个答案:

答案 0 :(得分:0)

  • 您可以使用ListBox项的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;

Searching through ListBox items


我不知道为什么,但是第一次当我尝试插入代码时,StackOverflow对我来说无法正常工作,因此我也从代码行中添加了一个屏幕截图: < / p>

Screenshot of code lines