Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

Vous n'avez pas encore de compte Developpez.com ? L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Developpez.com

C++

Choisissez la catégorie, puis la rubrique :

logo
Sommaire > MS Office > Word > Insertion de texte venant de composants
        Comment insérer du texte provenant d'un TEdit ?
        Comment insérer du texte provenant d'un TMemo ?
        Comment insérer du texte en provenance d'un TListBox ?
        Comment insérer du texte en provenance d'un TComboBox ?
        Comment insérer du texte en provenance d'un TRichedit ?
        Comment insérer du texte en provenance d'un TStringGrid ?
        Comment insérer du texte en provenance d'un TDBGrid ?



Comment insérer du texte provenant d'un TEdit ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez

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


    // 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));

Comment insérer du texte provenant d'un TMemo ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez

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


    // 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));

Comment insérer du texte en provenance d'un TListBox ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez

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


    // 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]));

Comment insérer du texte en provenance d'un TComboBox ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez

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


    // 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));

Comment insérer du texte en provenance d'un TRichedit ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez

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


    // 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));

Comment insérer du texte en provenance d'un TStringGrid ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez

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


    // 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
    }

Comment insérer du texte en provenance d'un TDBGrid ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez

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


    // 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();
    }
 


Consultez les autres F.A.Q.


Valid XHTML 1.0 TransitionalValid CSS!

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 © 2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni 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.

Contacter le responsable de la rubrique C++

Partenaire : Hébergement Web