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 OfficeWordInsertion de texte venant de composants (7)
précédent sommaire suivant
 

Cette procédure permet d'insérer du texte en provenance d'un TEdit sur le document Word sélectionné.

Code c++ : Sélectionner tout
1
2
3
4
// Il faut passer par l'instance de Word et non par celle du document 
// le texte provient d'un TEdit 
  
vMSWord.OlePropertyGet("Selection").OleProcedure("TypeText", WideString(Edit1->Text));

Mis à jour le 10 décembre 2007 blondelle pottiez

Cette procédure permet d'insérer du texte en provenance d'un TMemo sur le document Word sélectionné.

Code c++ : Sélectionner tout
1
2
3
4
// Il faut passer par l'instance de Word et non par celle du document 
// le texte provient d'un TMemo 
  
vMSWord.OlePropertyGet("Selection").OleProcedure("TypeText", WideString(Memo1->Lines->Text));

Mis à jour le 10 décembre 2007 blondelle pottiez

Cette procédure permet d'insérer du texte en provenance d'un TListBox sur le document Word sélectionné.

Code c++ : Sélectionner tout
1
2
3
4
// Il faut passer par l'instance de Word et non par celle du document 
// le texte provient d'un TListBox, ici on lit la première ligne 
  
vMSWord.OlePropertyGet("Selection").OleProcedure("TypeText", WideString(ListBox1->Items->Strings[0]));

Mis à jour le 10 décembre 2007 blondelle pottiez

Cette procédure permet d'insérer du texte en provenance d'un TComboBox sur le document Word sélectionné.

Code c++ : Sélectionner tout
1
2
3
4
// Il faut passer par l'instance de Word et non par celle du document 
// le texte provient d'un TComboBox, ici on lit la ligne sélectionnée 
  
vMSWord.OlePropertyGet("Selection").OleProcedure("TypeText", WideString(ComboBox1->Text));

Mis à jour le 10 décembre 2007 blondelle pottiez

Cette procédure permet d'insérer du texte en provenance d'un TRichEdit sur le document Word sélectionné.

Code c++ : Sélectionner tout
1
2
3
4
// Il faut passer par l'instance de Word et non par celle du document 
// le texte provient d'un TRichEdit 
  
vMSWord.OlePropertyGet("Selection").OleProcedure("TypeText", WideString(RichEdit1->Lines->Text));

Mis à jour le 10 décembre 2007 blondelle pottiez

Cette procédure permet d'insérer du texte en provenance d'un TStringGrid sur le document Word sélectionné.

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
24
25
26
27
28
// le texte provient d'un TStringGrid 
  
{ 
  
    vMSWord.OlePropertySet("ScreenUpdating", false); // on empêche le rafraîchissement écran afin de gagner en rapidité 
  
    int cmptRows = Form1->StringGrid1->RowCount; 
    int cmptColumns = Form1->StringGrid1->ColCount; 
    String chaine; 
    Variant vTable; 
  
    vWDocument.OlePropertyGet("Tables").OleFunction("Add", vMSWord.OlePropertyGet("Selection"). 
    OlePropertyGet("Range"), cmptRows, cmptColumns, 1, 0); 
  
    vTable = vWDocument.OlePropertyGet("Tables").OleFunction("Item", "1"); 
  
    for (int lignes = 0; lignes < cmptRows; lignes++) 
    { 
        for (int colonnes = 0; colonnes < cmptColumns; colonnes++) 
        { 
            chaine = (StringGrid1->Cells[colonnes][lignes]); 
            vTable.OleFunction("Cell", lignes + 1, colonnes + 1). 
            OlePropertyGet("Range").OleFunction("InsertAfter", WideString(chaine)); 
        } 
    } 
  
    vMSWord.OlePropertySet("ScreenUpdating", true); // on rafraîchit l'écran 
}

Mis à jour le 10 décembre 2007 blondelle pottiez

Cette procédure permet d'insérer du texte en provenance d'un TDBGrid dans un tableau du document Word sélectionné.

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
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
// déclaration des Variants 
Variant vMSword, vTable, vCell, vDocument, vDocuments; 
  
// si Word est ouvert on l'active, sinon on l'ouvre 
try 
{ 
    vMSword = Variant::GetActiveObject("Word.Application"); 
} 
catch(...) 
{ 
    vMSword = Variant::CreateObject("Word.Application"); 
} 
// on rend l'application Word visible 
vMSword.OlePropertySet("Visible", true); 
// on crée une page 
vMSword.OlePropertyGet("Documents").OleFunction("Add"); 
// la nouvelle page est sélectionnée 
Variant vSelect = vMSword.OlePropertyGet("Selection"); 
  
// on sélectionne la police du TDBgrid 
vSelect.OlePropertyGet("Font").OlePropertySet("Size", GridCustomers->Font->Size); 
vSelect.OlePropertyGet("Font").OlePropertySet("Name", GridCustomers->Font->Name.c_str()); 
// on récupère le nombre de lignes 
int nRowCount(GridCustomers->DataSource->DataSet->RecordCount + 1); 
  
// on récupère le nombre de colonnes 
int nColCount(GridCustomers->Columns->Count); 
  
// on crée un tableau avec le nombre de lignes et de colonnes que l'on a récupérées 
vMSword.OlePropertyGet("ActiveDocument").OlePropertyGet("Tables").OleProcedure("Add", 
    vSelect.OlePropertyGet("Range"), nRowCount, nColCount, 1, // wdWord9TableBehavior 
    0); // wdAutoFitFixed 
//  
vTable = vMSword.OlePropertyGet("ActiveDocument"). 
OleFunction("Range").OlePropertyGet("Tables").OleFunction("Item", 1); 
//  
for(int i=0; i<nColCount; i++) 
{ 
    int nColWidth = GridCustomers->Columns->Items[i]->Width; 
    vTable.OlePropertyGet("Columns").OleFunction("Item", i + 1) 
    .OlePropertySet("PreferredWidthType", 3); // wdPreferredWidthPoints 
    vTable.OlePropertyGet("Columns").OleFunction("Item", i + 1) 
    .OlePropertySet("PreferredWidth", nColWidth); 
} 
// ici on remplit le tableau Word avec le TDBGrid 
for(int j=0; j<GridCustomers->Columns->Count; j++) 
{ 
    vCell = vTable.OleFunction("Cell", 1, j + 1); 
    vCell.OlePropertySet("Range", GridCustomers->Columns->Items[j]->FieldName.c_str()); 
    // wdColorGray125 
    vCell.OlePropertyGet("Shading").OlePropertySet("BackgroundPatternColor", 14737632); 
} 
// 
GridCustomers->DataSource->DataSet->First(); 
for(int i=0; i<nRowCount; i++) 
{ 
    // 
    for(int j=0; j<GridCustomers->Columns->Count; j++) 
    { 
        vCell = vTable.OleFunction("Cell", i + 2, j + 1); 
        vCell.OlePropertySet("Range", 
        GridCustomers->DataSource->DataSet->FieldByName( 
        GridCustomers->Columns->Items[j]->FieldName)->AsString.c_str()); 
    } 
    GridCustomers->DataSource->DataSet->Next(); 
}

Mis à jour le 10 décembre 2007 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.