Ver Mensaje Individual
  #1  
Antiguo 27-10-2005
Er_Manué Er_Manué is offline
Miembro
 
Registrado: may 2003
Posts: 74
Reputación: 21
Er_Manué Va por buen camino
Esperar hasta que se cierre Excel

Estoy haciendo una aplicación que me genera un informe en Excel manejandolo a pelo Todo vá perfecto, imprimir sin mostrar excel, acceder a los datos, etc... el problema viene cuando formateo el informe y lo abro para que el usuario tenga vista previa, ahi se me descojona la apliación, ya que no se como hacer para que el programa espera hasta que el usuario cierre la hoja excel y así poder liberar correctamente la referencia a excel.

Utilizo el siguiente código para abrir Excel y mostralo:

Código Delphi [-]
var
  Excel: Variant;
  miWBK, miWS : OleVariant;

  ...

begin
  try
    Excel := GetActiveOleObject('Excel.Application');
  except
    Excel := CreateOleObject('Excel.Application');
  end;

  // Impedimos que se muestre Excel
  Excel.Visible := false;
  
  // Abrimos el fichero .xls y obtenemos la hoja que necesitemos
  miWBK := Excel.WorkBooks.Open(rutaHojaExcel);
  miWS  := miWBK.Worksheets.Item[nombreHojaExcel];
  
  //  Realizamos todas las operaciones con la hoja excel ---------------------
  ...

  // Mostramos la vista previa del informe
  Excel.Visible := true;

  ¡ Aquí debería esperar hasta que el usuario cierre la aplicación Excel !


  // Esté sería el código que emplearía para liberar la referencua a Excel
  try
    Excel.DisplayAlerts := false;
    Excel.Quit;
  finally
    Excel := Unassigned;
  end;
end;

salu2
Responder Con Cita