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 :

Problème OLE et WORD


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Problème OLE et WORD
    Je suis en train de tester le TUTO OLE word présent sur Developpez.com et j'ai déja un petit problème...(Je débute complement avec cette outil).
    Lorsque je teste cette fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    try {
        vMSWord = Variant::GetActiveObject("Word.Application");
    } catch(...) {
        vMSWord = Variant::CreateObject("Word.Application");
    }
    J'ai un message d'erreur disants que mon logiciel "XXX.exe" à crée une classe d'execption EOleSysError avec le message "une exeception s'est produite"...

    Merci pour vos réponses...

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Je decouvre aussi une erreur lors de la fermeture de mon aplication :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
            vSaveChanges = true;
            vWDocument.OleFunction("Close", vSaveChanges);
            vMSWord.OleFunction("Quit");
            vMSWord = Unassigned;
            Close();

    J'ai dois rater quelque(s) chose dans la fonctionnement de cette API.

    Merci
    Images attachées Images attachées  

  3. #3
    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
    Points : 3 766
    Points
    3 766
    Par défaut
    Salut Pierre78:
    Dans ton premier post en passant par try/catch l'erreur est dison normale car tu est en mode debug, il suffit de faire run pour relancer le programme, dans le try ca te pevient juste que essai d'ouvrir Word et qu'il n'est pas charge, ce que tu fait dans le catch.
    Comme tu a repris ce qui est de la FAQ Delphi je vais te donner ce qui est en preparation pour la FAQ BCB.
    Pour ce qui est de ta derniere erreur je pense que cela vient du close(), si c'est pour fermer ton programme ce sera quelque chose comme Application->Terminate();
    Le 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
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
    #include <vcl.h>
    #pragma hdrstop
    #include <utilcls.h> // a ne pas oublier d'inclure
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    //#include <utilcls.h> // a ne pas oublier d'inclure
        // Cette procedure permet de creer une Instance de Word
        // on ouvre Word s'il est charge
        // si Word n'est pas charge on le charge
        // puis on rend Word visible
     
        Variant vMSWord;
     
        try
        {
        vMSWord = Variant::GetActiveObject("Word.Application");
        }
        catch(...)
        {
        vMSWord = Variant::CreateObject("Word.Application");
        }
        vMSWord.OlePropertySet("Visible", true); // ("Visible", false)
     
     
    //Comment ouvrir un nouveau document Word
        //****************************************************************************//
     
        // cette procedure permet de creer un nouveau document à partir de l'instance de Word
     
        Variant vWDocuments,vWDocument;
     
        vWDocuments = vMSWord.OlePropertyGet("Documents");
        // ici on ouvre le document avec une feuille vierge
        vWDocument = vWDocuments.OleFunction("Add");
     
     
    //Comment ouvrir un document Word existant
        //****************************************************************************//
     
        // cette procedure permet de d'ouvrir un document word existant
     
        Variant vFileName, vReadPass, vWDocuments, vWDocument;
     
        vFileName = "c:\\book1.doc";
        vLink = Unassigned;
        vReadOnly = false; // lecture seule
        vFormat = Unassigned;
        vReadPass = "MotDePasse"; // mot de passe du document
        vWDocuments = vMSWord.OlePropertyGet("Documents");
        // ici on charge un document sur la feuille
        vWDocument = vWDocuments.OleFunction("Open", vFileName, vLink, vReadOnly, vFormat, vReadPass);
     
     
    //Comment Sauvegarder un nouveau document sous
        //****************************************************************************//
     
        // cette procedure permet de sauvegarder le document sous le nom souhaité
     
        Variant vFileName;
     
        vFileName = "c:\\book1.doc";
        vWDocument.OleProcedure("Saveas", vFileName);
     
     
    //Comment sauvegarder un ancien document
        //****************************************************************************//
        // cette procedure permet de sauvegarder le document
     
        vWDocument.OleProcedure("Save");
     
     
    //Comment fermer un document
        //****************************************************************************//
     
        // procedure FermerDocument
        // on ferme le document
     
        Variant vMSWord;
        vWDocuments.OleFunction("Close");
        // on libere les Variants
        vMSWord = Unassigned;
     
    //Comment quitter un documetn Word
        //****************************************************************************//
        // procedure QuitterDocument
        // on quitte le document
        Variant vMSWord;
        vWDocuments.OleFunction("Quit");
        // on libere les Variants
        vMSWord = Unassigned;
     
    }

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Alors sa c'est de la réponse...
    Je vais tester tout sa.... je te remercies...

    A+

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    J'ai pas bien compris pour le "run"...
    De plus pour fermer l'application sa me met toujours une erreur.... La même erreur
    Merci

  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
    Points : 3 766
    Points
    3 766
    Par défaut
    Quand tu lance ton programme comme Word n'est pas installe tu a une erreur qui se produit ce qui est normal mais tu traite cette erreur par le try/catch comme tu est en mode debug temps que tu reste dans l'editeur du compilateur BCB l'editeur te previend et arrete le programme tu le relance par Run, en mode EXE tu ne verra pas le traitement de l'erreur.
    Pour ton erreur fait une piece jointe de ton fichier s'il n'est pas trop gros que je vois comment tu ouvre et ferme ton appli, avec le code que je t'ai poste normalement tu ne devrais pas avoir d'erreur.

Discussions similaires

  1. Problème VB - OLE Microsoft Word
    Par hpt62 dans le forum VBA Access
    Réponses: 0
    Dernier message: 28/05/2013, 09h17
  2. Pilotage Ole de word
    Par beauchastel dans le forum Langage
    Réponses: 6
    Dernier message: 10/01/2006, 10h43
  3. [VB] Problème composants COM Word
    Par Vince dans le forum VBA Word
    Réponses: 5
    Dernier message: 08/12/2005, 10h18
  4. [Word] Problème de version Word
    Par delphicrous dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 17/09/2004, 11h19
  5. [VB6] Modification objet OLE dans Word sous VB
    Par zworg dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/02/2004, 08h20

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