如果您的列表框包含许多项目并且您需要选择例如,则选择项目会产生痛苦的工作通过手动点击和选择400项。 有没有一种优雅的方法可以使用某个“按模式功能选择项目”从列表框中选择项目???
答案 0 :(得分:3)
假设您拥有可以匹配模式的代码。让我们说它有这个界面:
function MatchesPattern(const Value, Pattern: string): Boolean;
然后您可以使用以下功能选择匹配的所有项目:
procedure SelectMatchingItems(ListBox: TListBox; const Pattern: string);
var
i: Integer;
begin
for i := 0 to ListBox.Count-1 do
ListBox.Selected[i] := MatchesPattern(ListBox.Items[i], Pattern);
end;
如果您准备使用匿名方法,则可以使用谓词。
procedure SelectMatchingItems(ListBox: TListBox;
const Matches: TFunc<string, Boolean>);
var
i: Integer;
begin
for i := 0 to ListBox.Count-1 do
ListBox.Selected[i] := Matches(ListBox.Items[i]);
end;
后一种方法是最灵活的,如果你有一个具有足够功能的Delphi,你应该如何解决这个问题。