Cita:
Empezado por Elenita
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.
|
Por lo que sé, ese error te lo muestra porque el objeto OLE no se está creando y la variable "objWordPerfect" contiene información inválida. (Según las pruebas que he hecho, si el objeto OLE no existiera, en el sistema, el error sería "Cadena clase no válida" y si un método no existe para tal objeto, entonces, el error sería "Método '<NombreMetodo>' no soportado...").
Prueba lo siguiente:
Código Delphi
[-]
procedure VerWPD(Archivo: string);
var
objWordPerfect : Variant;
begin
objWordPerfect := Null;
try
objWordPerfect:= CreateOleObject('WordPerfect.PerfectScript');
objWordPerfect.AppMaximize;
objWordPerfect.FileOpen(Archivo);
finally
if not VarIsNull(objWordPerfect) then
begin
objWordPerfect.Quit;
objWordPerfect.free;
end
else ShowMessage('Falló la creación del objeto');
end;
end;
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!