La propiedad Filter no admite comodines, aunque existen trucos, es bastante incómodo, resulta más eficiente una consulta (TQuery).
Respondiendo antes a tu segunda pregunta:
Existen los TDatamodules, que son contenedores de objetos no visuales, es decir, no puedes situar un Edit, pero si un TTable, TDatasource, etc. La idea consiste en Crear un TDatamodule, al guardarlo le das el nombre a la unidad (dmClientes) y a la ventana del Datamodule, en su propiedad Name indicas DTMClientes.
Sitúas la tabla clientes y su TDataSource en dicho datamodule y si lo necesitas en el Form1 y Form2, haces lo sigueinte:
Código Delphi
[-]
Unit Unit1;
interface
uses windows, messages, etc.... , DmClientes;
...
Cuando en Form1, en el Inspector de Objetos eliges el DBGrid.DataSource, si apararece el DataSource de Clientes para elegirlo.
Hecho esto, puedes situar un TQuery en dicho Datamodule (qryClientes), en el OnCreate del Datamodule añades:
Código Delphi
[-]
qryClientes.sql.text := 'Select * from Clientes where Nombre like :prNombre order by Nombre';
if not qryClientes.Prepared then qryClientes.Prepare;
Ya en tu Form de búsqueda, en el OnKeyUp de tu Edit (que busca por nombres), solo tienes que hacer:
Código Delphi
[-]
procedure TFormX.Edit2KeyUp(....);
begin
if Key = vk_return then
with dtmClientes.qryclientes do
begin
Close;
ParambyName('prNombre').AsString := QuotedStr(Edit2.text+ '%');
Open;
end;
end;
Con eso consigues que estando en el Edit2, al pulsar la tecla Enter/return, se obtengan todos los registros que empiezan por ese texto.
Para que busque en cualquier parte del nombre, puedes añadir:
QuotedStr('%'+Edit2.text+ '%');
es decir, otro comodín al principio del texto.
Saludos