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;