Bonjour,
Comment peut on utiliser la SDK de openoffice dans borland c++ builder?
Version imprimable
Bonjour,
Comment peut on utiliser la SDK de openoffice dans borland c++ builder?
Salut dédé:
La reponse est oui, mais il y a peu de chose, il te faudra adapter le code des macros openoffice pour Ole ce qui est loin d'etre evident.
Si tu est decide a essayer voici un bout de code pour ouvrir OpenOffice
Le code:
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <SysUtils.hpp> #include <ComObj.hpp> // a inclure obligatoirement #include <Variants.hpp> // utile dans certains cas #include "Ouverture_OpenOffice.h" // nom du programme en cour //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; Variant vOOoOpenOffice, vOOoDocument, vOOoDesktop, vOOoCoreReflection, vOOoLoadParams; Boolean vOOoDocumentExist; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { try { vOOoOpenOffice = CreateOleObject("com.sun.star.ServiceManager"); } catch (...) { // si on passe ici c'est qu'il y a une erreur } if (VarType(vOOoOpenOffice) == varDispatch) vOOoDesktop = vOOoOpenOffice.OleFunction("createInstance", "com.sun.star.frame.Desktop"); int Bounds[2] = {0,-1}; vOOoLoadParams = VarArrayCreate(Bounds, 1, varVariant); // ici on ouvre un nouveau document vierge calc vOOoDocument = vOOoDesktop.OleFunction("LoadComponentFromURL", "private:factory/scalc", "_blank", 0, vOOoLoadParams); vOOoDocumentExist = !(VarIsEmpty(vOOoOpenOffice) || VarIsNull(vOOoOpenOffice)); // false } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { // trois facon de fermer le document // ici on ferme le document ouvert sans sauvegarde comme decrit dans la FAQ delphi //vOOoDocument.OleFunction("dispose"); //vOOoOpenOffice = Unassigned; // ici on ferme le document avec ou sans sauvegarde // vOOoDocument.OleFunction("close", false); // vOOoDocument = Unassigned(); // la fermeture brutale vOOoDesktop.OleFunction("terminate"); // vOOoDesktop = Unassigned(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { // on place le code a tester ici } //---------------------------------------------------------------------------
Tu trouveras dans la FAQ Delphi un paragraphe sur l'interfaçage entre Delphi et OpenOffice. Vue que les méthodes utilisées en Delphi sont généralement proches de celle utilisées en BCB, tu pourras t'en inspirer.
Merci,
je pense qu'on va partir de ton exemple et essayer de creer une classe.
Salut dédé:
Tu a la FAQ Delphi pour t'aider, j'en ai traduit quelques exemples, je peu t'aider sur ce qui fonctionne, et tu a aussi ce liens sur le site en ooBasic
Citation: