FAQ C++ BuilderConsultez toutes les FAQ

Nombre d'auteurs : 60, nombre de questions : 670, dernière mise à jour : 21 novembre 2010  Ajouter une question

 

Cette F.A.Q. a été réalisée à partir des questions fréquemment posées sur le forum C++ Builder de developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette F.A.Q. ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette F.A.Q. ne prétend pas non plus être complète. Si vous trouvez une erreur, ou que vous souhaitez devenir rédacteur, contactez pottiez

Nous espérons que cette F.A.Q. saura répondre à un maximum de vos questions. Nous vous souhaitons une bonne lecture.

L'équipe C++ Builder de Developpez.

Commentez cette FAQ : Commentez


SommaireMS OfficeWordWord Gestion de l'application (13)
précédent sommaire suivant
 

Cette procédure permet de créer une Instance de Word.
Dans le try on récupére l'instance Word si il est chargé.
Le catch(...) permet de traiter le cas Word non chargé, et donc de le charger.
Puis on rend l'application Word visible.

Nous allons manipuler Word dans le cadre de son pilotage OLE, et donc tenter de récupérer l'instance active.
Le Variant vMSWord sera initialisé avec cette valeur et permettra par la suite de manipuler l'ensemble des éléments propres à Word.

Code c++ : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
Variant vMSWord; 
try 
{ 
  vMSWord = Variant::GetActiveObject("Word.Application"); 
} 
catch(...) 
{ 
  vMSWord = Variant::CreateObject("Word.Application"); 
} 
vMSWord.OlePropertySet("Visible", true); // ("Visible", false)

Mis à jour le 10 décembre 2007 blondelle pottiez

Cette procédure permet de créer un nouveau document à partir de l'instance de Word et d'afficher une feuille vierge.

Code c++ : Sélectionner tout
1
2
3
4
Variant vWDocuments, vWDocument; 
vWDocuments = vMSWord.OlePropertyGet("Documents"); 
// ici on ouvre le document avec une feuille vierge 
vWDocument = vWDocuments.OleFunction("Add");

Mis à jour le 10 décembre 2007 blondelle firejocker pottiez

Cette procédure permet de d'ouvrir un document Word existant.

Important : il est préférable de déclarer le nom du fichier et les differents paramètres de la fonction Open dans des variables.

Les variables non utilisées sont déclarées "Unassigned".
Nous allons travailler sur le Variant représentant l'instance du document.

Code c++ : Sélectionner tout
1
2
3
4
5
6
7
8
9
Variant vFileName, vLink, vReadOnly, vFormat, 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);

Mis à jour le 10 décembre 2007 blondelle firejocker pottiez

Cette procédure permet de sauvegarder le document sous le nom souhaité.

Important : il est préférable de déclarer le nom du fichier de la fonction Saveas dans une variable.

L'objet cible est un Variant (vWDocument) correspondant au document à sauver.

Code c++ : Sélectionner tout
1
2
3
Variant vFileName; 
vFileName = "c:\\book1.doc"; 
vWDocument.OleProcedure("Saveas", vFileName);

Mis à jour le 10 décembre 2007 blondelle firejocker pottiez

Cette procédure permet de sauvegarder le document avec le nom donné à l'ouverture.

L'objet cible est un Variant (vWDocument) correspondant au document à sauver.

Code c++ : Sélectionner tout
vWDocument.OleProcedure("Save");

Mis à jour le 10 décembre 2007 blondelle firejocker pottiez

Cette procédure permet de fermer le document.

Nous allons travailler sur le Variant représentant l'instance du document.

Code c++ : Sélectionner tout
1
2
3
4
Variant vMSWord; 
vWDocuments.OleFunction("Close"); 
// on libère les Variants 
vMSWord = Unassigned;

Mis à jour le 10 décembre 2007 blondelle firejocker pottiez

Cette procedure permet de quitter Word.

Nous allons travailler sur le Variant représentant l'instance de Word.

Code c++ : Sélectionner tout
1
2
3
4
Variant vMSWord; 
vMSWord.OleFunction("Quit"); 
// on libère les Variants 
vMSWord = Unassigned;

Mis à jour le 10 décembre 2007 blondelle firejocker pottiez

Cette procédure permet d'imprimer le document.

Code c++ : Sélectionner tout
vWDocument.OleProcedure("PrintOut");
Code c++ : Sélectionner tout
vMSWord.OleProcedure("PrintOut");

Mis à jour le 10 décembre 2007 blondelle firejocker pottiez

Cette procédure permet d'imprimer plusieurs exemplaires du document.

Code c++ : Sélectionner tout
1
2
3
4
5
6
7
8
Procedure ImprimerPage 
//InstanceDeWord.printout(copies := NbrCopie); 
  
// ("PrintOut", NbrCopie, Collate) 
vMSWord.OleProcedure("PrintOut", 2, true); // ("PrintOut", NbrCopie, Collate) 
  
// ("PrintOut", wdPrintRangeOfPages, NbrCopie, Collate) 
vMSWord.OleProcedure("PrintOut", 4, 1, 2);

Mis à jour le 10 décembre 2007 blondelle firejocker pottiez

Cette procédure permet d'avoir un aperçu avant impression.

Code c++ : Sélectionner tout
1
2
3
4
5
// on ouvre l’aperçu avant impression 
vWDocument.OleProcedure("PrintPreview"); 
  
// on ferme l'apercu avant impression 
vWDocument.OleProcedure("ClosePrintPreview");

Mis à jour le 10 décembre 2007 blondelle pottiez

Cette procédure permet de forcer un mode d'affichage.

Il existe plusieurs modes dont :

  • le mode plan : forcer la propriété "Type" à 2.
  • le mode page : forcer la propriété "Type" à 3.


Code c++ : Sélectionner tout
1
2
3
vWDocument.OlePropertyGet("ActiveWindow").OlePropertyGet("View").OlePropertySet("Type", 2); 
// ou 
vWDocument.OlePropertyGet("ActiveWindow").OlePropertyGet("View").OlePropertySet("Type", 3);
Remarque : si on souhaite une entête, il faut chosir le mode 3. Pour les autres modes voir Comment avoir différents modes d'affichage ?

Mis à jour le 10 décembre 2007 blondelle firejocker pottiez

Voici une liste des différents modes d'affichage :

Code c++ : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//wdNormalView: 
vWDocument.OlePropertyGet("ActiveWindow").OlePropertyGet("ActivePane").OlePropertyGet("View"). 
OlePropertySet("Type", 1); 
  
//wdOutlineView: 
vWDocument.OlePropertyGet("ActiveWindow").OlePropertyGet("ActivePane").OlePropertyGet("View"). 
OlePropertySet("Type", 2); 
  
//wdPageView: 
vWDocument.OlePropertyGet("ActiveWindow").OlePropertyGet("ActivePane").OlePropertyGet("View"). 
OlePropertySet("Type", 3); 
  
//wdPrintPreview: 
vWDocument.OlePropertyGet("ActiveWindow").OlePropertyGet("ActivePane").OlePropertyGet("View"). 
OlePropertySet("Type", 4); 
  
//wdPrintPreview: 
vWDocument.OlePropertyGet("ActiveWindow").OlePropertyGet("ActivePane").OlePropertyGet("View"). 
OlePropertySet("Type", 5); 
  
//wdOnlineView: 
vWDocument.OlePropertyGet("ActiveWindow").OlePropertyGet("ActivePane").OlePropertyGet("View"). 
OlePropertySet("Type", 6);

Mis à jour le 10 décembre 2007 blondelle corfoudiou pottiez

Cette procédure permet de connaître le numéro de version Word que l'on utilise, ceci peut être utile car certaines fonctions ont été complétées avec les nouvelles versions.

Code c++ : Sélectionner tout
1
2
3
String version_word; 
// connaître le numéro de version Word que l'on utilise 
version_word = vMSWord.OlePropertyGet("Version");

Mis à jour le 21 novembre 2010 blondelle pottiez

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2020 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.