Para el parámetro tabla puedes utilizar un tipo más generico, cómo por ejemplo el TComponent. Y para pasar diferentes parámetros a la consulta, puedes hacer una lista especial de registros.
Código Delphi
[-]procedure buscar_valor(ComponenteTabla: TComponent; Valor: Variant);
begin
if ComponenteTabla.InheritsFrom('TQuery') then
ComponenteTabla.params...
else
ComponenteTabla.Locate(...
end;
[EDITO]
Cuando me refiero a una Lista Especial de Registros, quiero decir a un TList compuesto por punteros a tipos de datos formados
Records;
Código Delphi
[-]
Type
Tparametros_para_procedimientos = record
nombre_del_param: String;
valor_del_param: Variant;
end;
Pparametros_para_procedimientos = ^Tparametros_para_procedimientos;