No se que tan valida sera tu forma pero a mi me gusta mas esto:
Código Delphi
[-]
TDataset(buscapersonas.ListSource).Filter:='Nombre LIKE ' + QuotedStr(edit1.text + '%');
TDataset(buscapersonas.ListSource).Filtered:=True;
Creo que es la forma correcta del cast, porq anteriormente casteabas a un objeto no a una clase como deberia ser,
pero es mi humilde opinion no se si estare en lo cierto