Wie setzt du denn den Filter? Ich mach das immer wie folgt und das Grid aktualisiert sich ohne das ich reinklicken muss:
Delphi-Quellcode:
//ggf.: ClientDataset.Filtered:=false;
ClientDataset.Filter:='irgendwas';
ClientDataset.Filtered:=true;
Ja mach ich jetzt auch so. Dann funktioniert das auch. Allerdings reagiere ich nun direkt auf das OnChange-Event des Edits, zuvor hatte ich den Edit.Text über LiveBindings mit einer Expression verbunden, vielleicht gibt es da ein Problem.
Bei deinem dritten Sternchen, hab ich die Intention nicht ganz verstanden, aber du kannst den Filterstring ja beliebeig formulieren, fast wie eine Where-Bedingung in einem
SQL-Statement.
NameOFField1 = 'TTab*' Or NameOFField2 = 'TTab*' or NameOFField3 = 'TTab*'
Um mehrere Felder zu berücksichten, muss ich
Delphi-Quellcode:
qf := QuotedStr (bnFind.Text+'*');
cds1.Filter := 'QuellDaten = ' + qf + ' OR ' +
'ZielDaten = ' + qf + ' OR ' +
'AusnahmeKomp = ' + qf + ' OR ' +
'Wert = ' + qf;
eingeben.
Schön wäre es, wenn es ein "SearchInAnyField"-Platzhalter gäbe, so das dass ich nicht jedes einzelne Feld hier angeben muss.
Weiterer Punkt: Ist hier tatsächlich die Beschränkung gegeben, dass man nur nach
grid*
filtern kann,
aber nicht nach
*grid*?
Mit der ersten Variante wird z.B. bei der Eingabe von "grid" der gesuchte Text nicht gefunden, wenn der mit "TGrid" beginnt, die zweite Variante wird aber anscheinend nicht unterstützt.