Automatizar Word Perfect mediante OLE
Hola a todos, me gustaría saber si alguien ha tenido que trabajar con Word Perfect (utilizo la version 7) desde Delphi a traves de OLE. He visto algunos ejemplos con DDE que no entiendo muy bien y también he leído que a partir de la version 7 se podía automatizar con OLE, pero no sé que librerías hay que importar, que units hay que poner en el uses, etc...
Este código me da error, supongo que la razón es que no he añadido ninguna unidad al uses, pero ¿cual? Muchas gracias... |
Para usar la función "CreateOleObject" necesitas añadir la unidad "ComObj" a la cláusula uses, asi que fíjate si te falta. (En caso de que no sea así, especifica si el error te lo da al compilar o en tiempo de ejecución).
Saludos! |
La unidad "ComObj" está en la cláusula uses y no tengo errores de compilación, al ejecutar me da el error "Invalid Variant operation"
He trabajado con WORD y EXCEL a través de OLE, pero nunca con WordPerfect y no sé si dará más problemas o hay que tratarlo de otra forma.. Muchas gracias. |
Cita:
Prueba lo siguiente:
Si te aparece el mensaje "Falló la creación del objeto" es que, lógicamente, el objeto "WordPerfect.PerfectScript" no se te está creando. Si esto es así, entonces, o es por un problema con el mismo "WordPerfect" (puede que no se instalara bien el objeto necesario para la automatización, que falten componentes por instalar, o que la aplicación no se instaló bien) o, si no, que no existe tal objeto "WordPerfect.PerfectScript" y sea otro el que se utilice para la automatización (aqui tendrías que mirar la ayuda de "WordPerfect"). Siento no poder ayudarte mas!, pero es que los objetos de automatización dependen más de la aplicación en sí (el código, en principio, parece correcto), por lo que tendrás que mirar la ayuda del mismo "WordPerfect" para ver como manipularlo. Chao! |
He probado el código que me pasaste y efectivamente me sale el mensaje de "Falló la creación del objeto". He metido la creación del objeto en un try-except y he capturado la excepción.
El error que me aparece ahora es "Espacio de almacenamiento insuficiente para completar esta operación". Por lo que he leído en internet es un error del sistema operativo, pero sigo igual que antes. He tratado de buscar en la ayuda de WordPerfect algo sobre la automatización OLE, pero no he tenido demasiada suerte. ¿Sabes donde podría documentarme? Muchas gracias por todo. Un saludo. |
Saludos!
La verdad es que nunca trabajé con WordPerfect (siempre lo he hecho con Word), así que no puedo ayudarte mucho. Te aconsejaría (como solemos hacer casi todos aqui) usar Google y buscar por las palabras: wordperfect ole, a ver si hay suerte! P.D: Por curiosidad, hice una búsqueda en Google sobre este tema y, efectivamente, parece que se utiliza el objeto "WordPerfect.PerfectScript" para controlarlo a través de OLE, así que creo que tu problema está mas relacionado con la instalación del WordPerfect en sí o con algún otro que puedas tener en Windows (esto último te lo digo por el mensaje que dices que te muestra). Por si te interesa, te dejo la dirección de la página que revisé: http://gmccomb.com/vault/edge/ole.html (aunque los ejemplos están en Visual Basic, son fáciles de entender) |
Hola jmariano,
La información que me has proporcionado me ha sido de mucha utilidad. Estaba empeñandome en crear un objeto y lo que neceito realmente es mostrar un documento WordPerfect en un contenedor OLE. Todavía estoy realizando pruebas, pero creo que va a ser menos complicado que crear un nuevo objeto OLE. Estudiaré con detenimiento la página que me propones. Muchísimas gracias por todo. Un saludo. |
Problema solucionado
Hola a todos, os cuento lo que necesitaba y la solución a la que he llegado, es posible que a alguien le pueda ayudar en algún momento.
Mi aplicación debía mostrar un documento WordPerfect en un contenedor OLE, para evitar que se pueda modificar, copiar o imprimir. Es cierto que a partir de la version 6 de WordPerfect se puede utilizar OLE en lugar de DDE, pero el control no es tan "sencillo" como en Word. Después de muchos quebraderos de cabeza y montones de pruebas me dieron la pista perfecta. Word es capaz de abrir archivos con extensión WPD (por lo tanto con formato de WordPerfect) así que la solución es tan sencilla como cambiarle la extensión al archivo de WordPerfect (cambiamos WPD por DOC) y mostrar ese archivo en el contenedor OLE. Espero que sirva de ayuda... Saludos. |
La franja horaria es GMT +2. Ahora son las 18:19:30. |
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