我将使用一个列表框来显示文件名的简单列表。我还有一个编辑组件,可以通过简单的搜索来搜索这些项目:
现在,有没有一种方法可以“有选择地”在列表框上显示项目?我的意思是,如果我搜索以“hello”开头的项目,则只有那些以hello开头的项目将被显示,要么使不符合条件的项目变暗,要么完全设置为不可见。 是否有一种方法可以在列表框中执行此操作? 谢谢!
哦,这是Delphi 7...
procedure TForm1.Edit1Change(Sender: TObject);
const
indexStart = -1;
var
search : array[0..256] of Char;
begin
if edit1.Text='' then exit;
StrPCopy(search, Edit1.Text) ;
ListBox1.ItemIndex := ListBox1.Perform(LB_SELECTSTRING, indexStart, LongInt(@search));
end;
现在,有没有一种方法可以“有选择地”在列表框上显示项目?我的意思是,如果我搜索以“hello”开头的项目,则只有那些以hello开头的项目将被显示,要么使不符合条件的项目变暗,要么完全设置为不可见。 是否有一种方法可以在列表框中执行此操作? 谢谢!
哦,这是Delphi 7...
TStringList
,但我个人想要手动完成所有操作,所以我总是使用array of string
。您可以通过SetLength
随时更改动态数组的长度。如果您增加长度,旧项目仍将存在。 - Andreas Rejbrand