Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Servers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-06-2004
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Smile Defecto grave de Excel al estar celda en estado de edición

¡Buen día a todos!

Continúo con mi experiencia en el uso de componentes Servers versión Office 97, en Delphi 7. Agradezco a Román su atinada y oportuna respuesta a mi duda anterior (¿Funciona un compilado XP en PC con Office 2000?). Para mayor compatibilidad, me funciona mejor usar la versión 97 de dichos componentes.

Ahora me encuentro ante una situación extraña, que a primera vista me parece un importante defecto de la biblioteca COM de Excel.

Tengo una aplicación Delphi 7 que utiliza un componente TExcelApplication versión Office 97, para realizar de forma automática ciertas tareas con un libro Excel. Regularmente el usuario tendrá abierto algún documento en Excel antes de ejecutar el proceso de automatización de mi aplicación. El proceso de automatización se realiza correctamente, respetando los demás documentos que el usuario tenga abiertos en ese momento.

Sin embargo, si en ese momento está abierto un libro Excel con una de sus celdas en estado de edición, es decir, con el cursor de teclado parpadeando dentro de ella o en la barra superior de captura, entonces las sentencias que operan sobre el objeto TExcelApplication causan excepciones OLE.

Por ejemplo, una sentencia como
Código:
AEAplicacion.Workbooks.Open (....);
Eleva una excepción EOLEException OLE error 800A03EC


Y una sentencia como
Código:
AEAplicacion.Cells.Item [1, 1].Select;
Eleva una excepción EOLESysError La llamada fue rechazada por el destinatario

Increíblemente, si en Excel quito el modo de edición de la celda (presionando la tecla Esc, por ejemplo), las sentencias anteriores de mi programa se ejecutan como se espera, sin ningún problema.

Noté que en el entorno de Excel no puede grabarse, ejecutarse o detenerse una macro, cuando una celda se encuentra en estado de edición. Esto me hace suponer que durante el estado de edición de una celda se inhabilita cierta parte de la biblioteca COM de Excel, lo cual causa las excepciones anteriormente mencionadas.

No he encontrado un método QuitEditMode, o algo así, que pueda ejecutar antes que las demás instrucciones para evitar este problema.

Procederé a realizar una prueba temporal con la versión XP de los coponentes Server. Mientras tanto, les agradezco todas las aportaciones que puedan hacer al respecto.

¡Un abrazo!

Al González .

El azar es el último de los recursos
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 18:58:41.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi