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

Delphi Discussion :

Pilotage de Word avec Delphi


Sujet :

Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 162
    Points : 124
    Points
    124
    Par défaut Pilotage de Word avec Delphi
    Bonjour,

    Comment déplacer le curseur à un endroit précis dans un document Word avec Delphi ?
    Par exemple, si je veux descendre le curseur à la dixième ligne ? La macro en VBA donne "Selection.Movedown Unit:=wdline, Count:=10".
    Comment transposer ça en Delphi, qui voit Unit comme un mot-clé ?
    Merci pour toute aide.

  2. #2
    Membre averti
    Profil pro
    xxxxxxxxxxx
    Inscrit en
    Juin 2004
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : xxxxxxxxxxx

    Informations forums :
    Inscription : Juin 2004
    Messages : 308
    Points : 407
    Points
    407
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    var wd : TWordApplication;
        wdUnit, wdCount, wdExtent : OleVariant;
    begin
      wdUnit := wdLine;
      wdCount := 10;
      wdExtent := false;
      wd.Selection.MoveDown(wdUnit, wdcount, wdExtent)
    end;
    Sinon, pour être sûr de la destination, l'utilisation des signets est souvent préférable.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 162
    Points : 124
    Points
    124
    Par défaut
    Merci cmen76,

    J'ai essayé le code que tu proposes, mais j'obtiens une exception sur la ligne
    Var wd:Twordapplication;
    (identificateur non déclaré:'Twordapplication')
    Peut-être dois-je ajouter autre chose ?

  4. #4
    Membre averti
    Profil pro
    xxxxxxxxxxx
    Inscrit en
    Juin 2004
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : xxxxxxxxxxx

    Informations forums :
    Inscription : Juin 2004
    Messages : 308
    Points : 407
    Points
    407
    Par défaut
    identificateur non déclaré:'Twordapplication'
    En fait, je suis en Delphi7 et j'ai utilisé rapidement la palette Serveurs.
    En lieu et place de cette variable, mets le pointeur obtenu sur l'application Word (IDispatch) ;
    Je ne pas être plus précis sans savoir comment tu invoques Word depuis ton appli.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 162
    Points : 124
    Points
    124
    Par défaut
    Bonjour cmen76,

    et meci pour ta réponse. J'utilise également Delphi 7, mais je suis encore débutant, surtout en ce qui concerne la communication OLE.

    Voici comment j'ouvre un fichier DOC:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            word := CreateOleObject('word.Application');
            documents := word.documents;
            document := documents.Open(nom);
            word.visible := true;
    Dans ce code, "nom" est le nom du fichier DOC. Toute les autres variables sont de type variant.

    Merci pour ton aide.
    [Balises CODE rajoutées par Pedro. Merci d'y penser à l'avenir]

  6. #6
    Membre averti
    Profil pro
    xxxxxxxxxxx
    Inscrit en
    Juin 2004
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : xxxxxxxxxxx

    Informations forums :
    Inscription : Juin 2004
    Messages : 308
    Points : 407
    Points
    407
    Par défaut
    Alors le code deviendrait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var word : OLEVariant;
        wdUnit, wdCount, wdExtent : OleVariant;
    begin
      word := CreateOleObject('word.Application');
      wdUnit := wdLine;
      wdCount := 10;
      wdExtent := false;
      word.Selection.MoveDown(wdUnit, wdcount, wdExtent)
    end;

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 162
    Points : 124
    Points
    124
    Par défaut
    Merci encore pour ta réponse, mais ça ne marche toujours pas.

    La ligne "word.Selection.MoveDown(wdUnit, wdcount, wdExtent)" provoque une exception "Paramètre incorrect".

  8. #8
    Membre averti
    Profil pro
    xxxxxxxxxxx
    Inscrit en
    Juin 2004
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : xxxxxxxxxxx

    Informations forums :
    Inscription : Juin 2004
    Messages : 308
    Points : 407
    Points
    407
    Par défaut
    exception "Paramètre incorrect"
    ... à l'exécution ? --> C'est une EOLEException ?
    il se pourrait alors que ta version de Word ne soit pas en accord avec la bibliothèque de types que tu utilises...
    Projet/Importer une bibliothèque de types/Ajouter...
    MSWORD.OLB dans le répertoire d'Office.
    Ca devrait te générer une unité Word_TLB.pas en accord avec la version de Word installée. Je crois qu'il y a des tuto là-dessus.

Discussions similaires

  1. Problème Word avec Delphi
    Par tane dans le forum API, COM et SDKs
    Réponses: 0
    Dernier message: 30/05/2008, 12h07
  2. Commet gérer Word avec Delphi ?
    Par mechatikhaled dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 10/01/2008, 20h19
  3. Modifier un fichier word avec Delphi
    Par Andry dans le forum Delphi
    Réponses: 5
    Dernier message: 10/07/2007, 16h56
  4. Pilotage OLE Word avec Visual C++
    Par baka02 dans le forum MFC
    Réponses: 2
    Dernier message: 20/03/2006, 13h04
  5. Comment utiliser Word avec Delphi 7 ?
    Par muquet dans le forum Débuter
    Réponses: 9
    Dernier message: 06/12/2005, 18h52

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