salut
je veux ouvrir un fichier word à partir d'un clic sur un bouton . comment faire?:roll:
Version imprimable
salut
je veux ouvrir un fichier word à partir d'un clic sur un bouton . comment faire?:roll:
FAQ...
tu tapes ShellExecute est tu appuis sur:f1:
sinon il y a un autre sujet a peu prés sur le meme theme:
http://www.developpez.net/forums/sho...d.php?t=153259
peut etre en executant ce petit bout de programme avec une forme et un bouton
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 //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #pragma link "Word_2K_SRVR" #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) { //---------------------------------------------- Variant vMSWord , vWDocument , vWDocuments; Variant vFileName; //---------------------------------------------- vMSWord = Variant::CreateObject("Word.Application"); vMSWord.OlePropertySet("Visible",true); vFileName = "C:\\Documents and Settings\\blondelle\\Mes documents\\plan_gps\\PLAN_GPS\\télégraphe.csv"; vWDocuments = vMSWord.OlePropertyGet("Documents"); vWDocument = vWDocuments.OleFunction("Open", vFileName); } //-----------------------------------------------
Citation:
Envoyé par blondelle
Ce code me paraît excellent, il faudrait sans doute l'inclure dans la FAQ si ce n'est déjà fait. Il fait concurrence au ShellExecute, c'est une autre formule tout aussi intéressante.Code:
1
2
3
4
5
6
7
8
9
10 void __fastcall TForm1::Button1Click(TObject *Sender) { Variant vMSWord , vWDocument , vWDocuments, vFileName; vMSWord = Variant::CreateObject("Word.Application"); vMSWord.OlePropertySet("Visible",true); vFileName = "C:\\Documents and Settings\\blondelle\\télégraphe.csv"; vWDocuments = vMSWord.OlePropertyGet("Documents"); vWDocument = vWDocuments.OleFunction("Open", vFileName); }
À bientôt
Gilles
Ce bout de code a ete ecrit avec l'aide de la FAQ Word et en minspirant du cheminement de l'ouverture de fichier excel
Tutoriel Pilotez OLE de Word
Tutoriel Pilotage OLE d'Excel
je poste une question similaire a celle de mon poste sur excel
"ouverture d'un fichier texte avec excel"
sous WORD en VBE on ecrit
et la on appel la boite d'ouverture de fichierCode:
1
2
3
4 Sub essai() Application.Dialogs(wdDialogFileFind).Show End Sub
avec cette facon de faire on s'elimine la gestion des Variants
en recherchant dans la VCL word_2k_srvr.h
dans les include on trouve "#include Word_2k.h"
dans word_2k.h
on trouve
dans la suite on remarque que l'on retrouve WdWordDialogCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 typedef enum WdWordDialog { wdDialogHelpAbout = 9, wdDialogHelpWordPerfectHelp = 10, wdDialogHelpWordPerfectHelpOptions = 511, __ __ wdDialogFileFind = 99, <---------- __ __ wdDialogFormatTheme = 855, wdDialogTCSCTranslator = 1156 } WdWordDialog; <-------------
je pense que de bcb on peut appeler directement ces boites de dialogue WORDCode:
1
2
3
4
5
6
7
8
9
10
11
12
13 virtual HRESULT STDMETHODCALLTYPE Item(Word_2k::WdWordDialog Index/*[in]*/, Word_2k::Dialog** prop/*[out,retval]*/) = 0; // [0]Word_2k::Dialog* __fastcall Item(Word_2k::WdWordDialog Index/*[in]*/) { Word_2k::Dialog* prop; OLECHECK(this->Item(Index, (Word_2k::Dialog**)&prop)); return prop; }Code:
12 ou
et les informations contenus dans la VCL le permettent malheureusement je n'ai pas les competances pour le faire
mais l'idee est lancee si quelqu'un peut le faire cela permettrait d'exploiter plus facilement Word sous bcb