Hola Kao, parece que estemos en un Chat, los dos Online aquí.
Si como dices, ese Query lo tienes en un DataModule aparte, llamémosle DATAMOD2, antes que nada el Form desde el que llamas al otro debe tener en su cláusula Uses la unit del DATAMOD2, para acceder a sus objetos. Supongamos que esta es la rutina donde llamas al Form de búsqueda:
Código:
var
AForm: TFormBusqueda;
begin
AForm := TFormBusqueda.Create(Self);
try
if AForm.ShowModal = mrOk then // el usuario hizo Doble click y validó
begin
Edit1.Text := DATAMOD2.Query1.FieldByName('ID_CASA').AsString;
Edit1.Text := DATAMOD2.Query1.FieldByName('Descripcion').AsString;
end
else begin // el usuario canceló la búsqueda
Edit1.Text := ''; // por ejemplo podemos vaciar los Edits
Edit1.Text := '';
end
finally
AForm.Free; // liberamos la memoria del Form de búsqueda
end;
end;
Bueno, esta es una forma de hacerlo, el Form de búsqueda al abrirse lanza la consulta y el form que lo llama toma de ella los valores que le interesen si se aceptó la búsqueda. Fíjate que TFormBusqueda debe cerrar la consulta en su método OnDestroy (si es que quieres que se cierre realmente); aun así podemos mirar los valores de la consulta antes de hacer AForm.Free, que es cuando se cerrará realmente.
En TFormBusqueda iría esto:
Código:
procedure TFormBusqueda.Create (Sender: TObject);
begin
DATAMOD.Query1.Open;
end;
procedure TFormBusqueda.Destroy (Sender: TObject);
begin
DATAMOD.Query1.Close;
end;
Uff !!! Acabo de ver tu nuevo mensaje, lo del uso del Like que me acabas de decir no influye en lo que estamos tratando.
Por cierto, si entras en la página web de
Cadetill, puedes descargarte un componente, llamado algo así como TDBSearchDialog, que sirve para hacer búsquedas, igual te ayuda mirar su código, o el componente entero.