IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Création "Bookmarks" dans WORD avec Borland C++


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 14
    Par défaut Création "Bookmarks" dans WORD avec Borland C++
    Bonjour, je dépose ce poste car je suis dans une impasse et malgré toutes mes recherches je n’ai pas trouvé de solution.
    Je voudrais créer via Borland un « Bookmark » (signet) dans un document Word.
    Voici le bout de code utilisé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
           vDoc.OlePropertyGet("Bookmarks").OleFunction("Add",
                    strPage1.c_str(),
                    vWordApp.OlePropertyGet("Selection").OlePropertyGet("Range")
                    );
             vDoc.OlePropertyGet("Bookmarks").OlePropertySet("DefaultSorting", 0); 
             vDoc.OlePropertyGet("Bookmarks").OlePropertySet("ShowHidden", false);
    Dès que l’appel à la création se fait, un message d’erreur « …. Class EOlesyserror with message « Exception occured ».
    D’où ma question est-il possible de créer un « Bookmark » par programmation Ole ? Si oui où est mon erreur?

    Merci à vous.

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut diouki
    C'est possible comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            String strPage1("aaa");
     
            vDoc.OlePropertyGet("Bookmarks").OleFunction("Add",
                    strPage1.c_str(),
                    vWordApp.OlePropertyGet("Selection").OlePropertyGet("Range")
                    );

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 14
    Par défaut
    Bonjour Blondelle,

    Le bout de code que tu me donnes resemble étranchement à celui que j'ai posté et qui me pose problème. Je ne comprends pas ?????????

    Ton vDoc est bien une instance de "Documents" ?

    Bàt.

  4. #4
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    J'avais une erreur Ole et elle venait de la facon d'ecrire la chaine de caractere "strPage1", voici le bout de code de teste qui m'a servi en utilisant ton bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
       Variant vWordApp, vDoc;
        try
        {
            vWordApp = Variant::CreateObject("Word.Application");
        }
        catch(...)
        {
            MessageBox(Handle, "Word!",
                    Application->Title.c_str(), MB_OK | MB_ICONERROR);
            vWordApp = Unassigned;
            return;
        }
            // Word
            vWordApp.OlePropertySet("Visible", true);
            // 
            vDoc = vWordApp.OlePropertyGet("Documents").OleFunction("Add");
            String strPage1("aaa"), strPage2("bbb"), strPage3("ccc");
            vDoc.OlePropertyGet("Bookmarks").OleFunction("Add",
                    strPage1.c_str(),
                    vWordApp.OlePropertyGet("Selection").OlePropertyGet("Range")
                    );

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 14
    Par défaut
    Salut blondelle, désolé toujours la même erreur.

    Je travaille sous MS office professional Word 2003 SP3
    XP professional
    C++builder5 professional

  6. #6
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Je pense que tu a bien " #include <utilcls.h> // ne pas oublier " dans ton entete, il y faut aussi dans certaines version de BCB ajouter " #include <ComObj.hpp> // a ajouter dans certains cas "

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 30/08/2006, 14h22
  2. Réponses: 5
    Dernier message: 12/06/2006, 09h31
  3. Réponses: 2
    Dernier message: 11/04/2006, 19h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo