Según tu último mensaje, quizás una función de este estilo te sirva:
Código Delphi
[-]
function CreateQuery(sql:string):TQuery;
begin
Result := TQuery.Create(nil);
Result.DatabaseName := bla bla...
Result.sql.text := sql;
end;
hecho esto, ahora tienes 2 formas de usarla:
Código Delphi
[-]
var q :TQuery;
q := CreateQuery('select * from tabla');
q.Open;
q.Free;
q := CreateQuery('update tabla1 set campo1 = 32');
q.ExecSql;
q.Free;
En definitiva, puedes crear tantos querys como quieras, pero sin tener los componentes en tu ventana dando la lata.
Edito otra vez más:
Si una query va a estar ligada a un Grid, por ejemplo, para mostrar datos al usuario, no reutilices esa query para nada, déjala para ese menester nada más.
Si quieres tener una query, que solo se usa en determinadas ocasiones, y sabes que nunca va a solaparse su ejecución con otras que usen esa misma query, podrías usar una variante de esa función:
Código Delphi
[-]
function ChangeQuery(qry:TQuery; sql:string):TQuery;
begin
if qry = nil then
Result := TQuery.Create(nil)
else
begin
if qry.Active then
Qry.Close;
Result := qry;
end;
Result.DatabaseName := bla bla...
Result.sql.text := sql;
end;
Saludos