Problème de création de document avec OLE
Bonjour,
Tout d'abord je vous place dans le contexte.
Je suis en mission de R&D pour mon entreprise. Cette mission consiste à trouver les ressources et développer un module pour lier le progiciel (déjà créé par l'entreprise) et OpenOffice. J'utilise pour cela notre bon vieux internet pour chercher des tuto sur le pilotage OLE. J'ai déjà piloté Excel via ces fonctions.
Mes sources :
Maintenant mon problème :
Je cherche donc à créer un document via OLE/COM mais lors de la création j'ai : "Le variant ne référence pas un objet Automation."
Je ne vois pas ce qu'il me manque.
Mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| procedure TFormMenuPrinc.XPBitBtnValiderClick(Sender: TObject);
var
OfficeDesktop, Params, Document: Variant;
DocumentExist: Boolean;
begin
//création du fichier
MemoInfo.Lines.Add(MSGINF + 'Création du fichier.');
OfficeDesktop:= OpenOffice.CreateInstance('com.sun.star.frame.desktop');
Params:= VarArrayCreate([0, -1], varVariant);
Document:= OfficeDesktop.LoadComponentFromURL(TypeDoc, '_blank', 0, Params);
//test si le fichier est bien créé
DocumentExist:= not(VarIsEmpty(Document) or VarIsNull(Document));
if DocumentExist then
MemoInfo.Lines.Add(MSGINF + 'Le document a été créé avec succès.')
else
MemoInfo.Lines.Add(MSGERR + 'Le document n''a pas été créé.');
end; |
A savoir que :
TypeDoc et OpenOffice sont des properties.
Le code m'affiche l'erreur cité précédemment lors de
Code:
Document:= OfficeDesktop.LoadComponentFromURL(TypeDoc, '_blank', 0, Params);
J'ai testé tout le reste du code, la connexion à OpenOffice ne pose pas de problème et reste active, et la déconnexion fonctionne également. C'est le seul problème que je trouve à l'exécution de l'application.
Si je n'ai pas été assez clair dites-le moi, je m'efforcerai de mieux m'exprimer.
Je remercie d'avance tous ceux qui se pencheront sur mon problème. Quant à moi je continue de chercher une solution au problème.