修正 XE6 TListView 上方 SearchBok 右边的清除钮显示

时间:2023-03-08 23:24:43
修正 XE6 TListView 上方 SearchBok 右边的清除钮显示

注意:XE7 已修正这个问题。

Delphi Firemonkey TListView 提供了搜寻的功能,但在 XE6 以前的版本,可以显示右边的清除按钮,在 XE6 确消失了,这里提供一个修正的方案,供大家参考。

1、放一个 TListView 后,将 SearchVisible 设为 True ,就能看到上方的搜寻功能。

修正 XE6 TListView 上方 SearchBok 右边的清除钮显示

2、运行后,在没有输入任何文字的情况下,不会有右边的清除按钮。

修正 XE6 TListView 上方 SearchBok 右边的清除钮显示

3、输入一些文字后,就能看到右边的清除按钮,在还没有修正前,是看不到这个清除按钮的。

修正 XE6 TListView 上方 SearchBok 右边的清除钮显示

修正方法:

请将源码 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;