Hola,
En mi opinión, tienes un problema de diseño. Formulario2 debería ser totalmente independiente de cualquier otro formulario. Si dicho formulario debe manejar los datos de otros formularios, deja que esos otros formularios le pasen los datos por medio de propiedades.
Por ejemplo, Formulario2 podría tener una propiedad pública DataSet:
Código Delphi
[-]
TFormulario2 = class(TForm)
private
FDataSet: TDataSet;
public
property DataSet: TDataSet read FDataSet write FDataSet;
end;
Si otro formulario necesita usarlo, haría algo como:
Código Delphi
[-]
Formulario2 := TFormulario2.Create;
Formulario2.DataSet := Self.Query1.DataSet;
Formulario2.ShowModal;
Y Formulario2 trabajaría entonces con la variable FDataSet, y no dependería de quién lo llamó.
// Saludos