修正 XE6 TListView 上方 SearchBok 右边的清除钮显示
注意:XE7 已修正这个问题。
Delphi Firemonkey TListView 提供了搜寻的功能,但在 XE6 以前的版本,可以显示右边的清除按钮,在 XE6 确消失了,这里提供一个修正的方案,供大家参考。
1、放一个 TListView 后,将 SearchVisible 设为 True ,就能看到上方的搜寻功能。
2、运行后,在没有输入任何文字的情况下,不会有右边的清除按钮。
3、输入一些文字后,就能看到右边的清除按钮,在还没有修正前,是看不到这个清除按钮的。
修正方法:
请将源码 FMX.Edit.pas 复制到自己的工程目录里,再进行修改。
找到 TSearchBox.DoChangeTracking 函数,在最后加入一行,如下:
procedure TSearchBox.DoChangeTracking; var Lower: string; begin inherited; Lower := LowerCase(Text.Trim); if FResponder <> nil then FResponder.SetFilterPredicate( function(X: string): Boolean begin Result := (Lower = EmptyStr) or LowerCase(X).Contains(Lower); end); {+++>}RealignButtonsContainer; // 加入这一行 end;