Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Problema con Word al migrar de CB++ 4 a 6

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Problema con Word al migrar de CB++ 4 a 6 Responder citando

Hola. Al compilar un proyecto hecho en C++Builder 4 con C++Builder 6 me da una serie de problemas... Al cambiar los archivos de cabecera "#include <comobj.hpp" y algún otro me acaba compilando, pero me da error en la ejecución. ¿Alguna ayuda? Pongo el código de abrir Word (lo primero de todo, donde ya me da el error).
Archivo h:
Código:
class OJPOWord{
public:
  bool Visible;
  Variant vWord,                                      //* MSWord (TWord)
          vDocs,                                      //* Documentos (TCollection)
          vDoc,                                       //* Documento (TDocument)
          vBMarks,                                    //* Libros marcas (TCollection)
          vBMark,                                     //* Libro marcas (TBookMark)
          vRange,                                     //* Rango
          vInLineShapes,                              //* Formas en línea (TCollection)
          vInLineShape,                               //* Forma en línea (TInLineShape)
          vShapes,                                    //* Formas (TCollection)
          vShape,                                     //* Forma (TShape)
          vStyles,                                    //* Estilos (TCollection)
          vFont,                                      //* Fuente (TFont)
          vParFormat,                                 //* Formato de párrafo
          vTables,                                    //* Tablas (TCollection)
          vTable;                                     //* Tabla (TTable)
  OJPOWord();
  ~OJPOWord();
  unsigned int Abrir();
  unsigned int Conectar();
  unsigned int Cerrar();
  unsigned int CrearDoc();
  unsigned int CrearDoc(char *);
  unsigned int AbrirDoc(char *);
  unsigned int AbrirDoc(char *,bool);
  unsigned int AbrirDoc(char *,char *);
  unsigned int GuardarDoc();
  unsigned int GuardarComoDoc(char *);
  unsigned int CerrarDoc();
  unsigned int CerrarDoc(char *);
  unsigned int CerrarDoc(bool);
  unsigned int CerrarDoc(bool,char *);
  unsigned int ObtenerMarcas();                       //*
  unsigned int ActivarEstilo(char *);
  unsigned int InsertarSalto(eTipoSalto);
  unsigned int InsertarTabulador(double,eAlinTabul);
  unsigned int EliminarTabulador(double);             //*
  unsigned int TextoPosSupInd(bool);
  unsigned int TextoPosSubInd(bool);
  unsigned int TextoPosNormal();
  unsigned int InsertarTexto();
  unsigned int InsertarTexto(char *);
  unsigned int InsertarTextoSup(char *);
  unsigned int InsertarTextoSub(char *);
  unsigned int InsertarImagen(char *,bool Vincular=false,bool Guardar=true);
  unsigned int InsertarImagen(char *,int X,int Y,
                              bool Vinvular=false,bool Guardar=true);
  unsigned int InsertarImagen(char *,int X,int Y,int Ancho,int Alto,
                              bool Vincular=false,bool Guardar=true);
  unsigned int InsertarImagen(char *,int X,int Y,int Ancho,int Alto,int Pagina,
                              bool Vincular=false,bool Guardar=true);
  unsigned int InsertarImagenEnLinea(char *);
  unsigned int InsertarTabla(int,int);
  unsigned int InsertarTablaTexto(int,int);
};
//-----------------------------------------------------------------------------------

#endif

Archivo cpp:
Código:
#include "OJPOWord.h"

#include <utilcls.h>

#include <vcl.h>
#pragma hdrstop

//-----------------------------------------------------------------------------------
//************* CONSTRUCTOR DE OJPOWORD **************
//-----------------------------------------------------------------------------------
OJPOWord::OJPOWord(){
···
}
//-----------------------------------------------------------------------------------
//************** DESTRUCTOR DE OJPOWORD **************
//-----------------------------------------------------------------------------------
OJPOWord::~OJPOWord(){
···
}
//-----------------------------------------------------------------------------------
//******************* ABRIR MSWORD *******************
//-----------------------------------------------------------------------------------
unsigned int OJPOWord::Abrir(){
  try{
//******************* Abro MSWord ********************
    vWord=Variant::CreateObject("Word.Application");
//************ Hago visible la aplicación ************
    vWord.OlePropertySet("Visible",Visible);
    return 1;
  }
  catch(...){
    return 0;
  }
}
//-----------------------------------------------------------------------------------
//*************** CONECTAR CON MSWORD ****************
//-----------------------------------------------------------------------------------
unsigned int OJPOWord::Conectar(){
  try{
    try{
//*** Conecto con la instancia existente de MSWord ***
      vWord=Variant::GetActiveObject("Word.Application");
    }
    catch(...){
//******************* Abro MSWord ********************
      vWord=Variant::CreateObject("Word.Application");
    }
//************ Hago visible la aplicación ************
    vWord.OlePropertySet("Visible",Visible);
    return 1;
  }
  catch(...){
    return 0;
  }
}
···

Y el error que me lanza al abrir word es:
Cita:
Project PWord01.exe raised exception class EOleSysErrar with message 'Operación no disponible'. Process stopped. Use Step or Run to continue.

Espero una mano amiga.

Un saludo.
_________________
Nunca digas "Es imposible" sin intentarlo antes.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Verifica que las cabeceras que usaste en la instalacion de BCB6, sean compatibles con las cabeceras de Office del BCB4, por citar

las cabeceras que instala el BDS2006 son Office 2000 y Office xp,

si eliges las de Office XP, muchos componentes de la paleta de Office 2000 desaparecen... cuando emigras apliaciones con cabeceras de Office 2000 sencillamente no funciona.

saludos.
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Hola César.

Yo me conecto a Word "a pelo", sin usar la paleta de componentes de Office. Luego aquí no puede estar el problema (creo).

Un saludo.
_________________
Nunca digas "Es imposible" sin intentarlo antes.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.