2016-06-07 2 views

Antwort

3

Verwenden Sie FindCaption Methode von TListView.

+0

Ich benutze 'Firemonkey'. Es sieht so aus, als ob diese Methode nicht existiert. – Machado

+1

@tardoandre Das solltest du in deiner Frage gesagt haben. –

+0

Ich habe es auf fast jede Frage gestellt und die Leute entfernen immer das Etikett. – Machado

2

Vielleicht ist das, was Sie für die Suche Swissdelphicenter eine schnelle Lösung Link to the article

Anruf FindCaption Methode zu haben scheint durch die String angegeben als Wert Parameter

markiert für eine Listenansicht Artikel suchen

ich bin kein Experte FMX aber kippe Sie verwenden:

FMX.ListView.TListViewBase.SearchVisible

um weitere Informationen zu verwenden, um dies Link

ein Suchfeld zeigt oben auf Ihrer Liste Ansicht, die den Inhalt der Liste filtern.

+0

taggen. Ich würde lieber danach suchen, ohne eine 'loop' Anweisung zu verwenden. "SearchVisible" dient also zum Suchen von ListItems. Ich möchte nach Strings in der Liste suchen, um doppelte Einträge zu vermeiden. – Machado

0

Try this:

procedure SarchLV(SearchStr: String); 
begin 

    SearchStr := LowerCase(SearchStr); 

    ListView1.Items.Filter := 
    Function(X: string): Boolean 
    Begin 
     Result:= (SearchStr = EmptyStr) Or LowerCase(X).Contains(SearchStr); 
    End; 

end; 
0

So Helfer erstellen. In Formulareinheit:

THelperListView = class helper for TListView 
public 
    function FindCaption(const aText: string): boolean; 
end; 

function THelperListView.FindCaption(const aText: string): boolean; 
var 
    i: Integer; 
begin 
    Result := false; 
    for i := 0 to Items.Count - 1 do 
    begin 
    Result := CompareText(Items[i].Text, aText) = 0; 
    if Result then 
     exit; 
    end; 
end;