Une technique simple pour celà : les patterns.
Supposons qu'un contrôle de type TEdit contienne le modèle de chaîne à rechercher (ex : *un*).
Tu mets la propriété Filtered à True de ta table :
Table1.Filtered := True;
Ensuite, tu écris un gestionnaire d'évènements OnFilterRecord sur Table1 :
uses Masks; //ne pas oublier !
procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept := MatchesMask(DataSet.FieldByName('Jour').AsString, Edit1.Text);
end;
Bien que la fonction MatchesMask soit ainsi déclarée :
function MatchesMask(const Filename, Mask: string): Boolean;
il n'y a, en aucun cas, l'obligation de ne l'utiliser qu'avec des fichiers. Les caractères génériques * et ? sont les mêmes que ceux utilisés par le DOS.
Autre technique, utiliser une requête SQL :
Select * from MaTable where Jour like "%un%"
La chaine %un% pouvant être passée en paramètre variable ou la requête pouvant être construite dans le code.
Personnellement, j'opterais pour une requête SQL, un peu plus rapide que l'utilisation de l'évènement OnFilterRecord d'un composant TTable.
May Delphi be with you