Ver Mensaje Individual
  #3  
Antiguo 24-09-2007
JAVH JAVH is offline
Miembro
 
Registrado: mar 2007
Posts: 17
Reputación: 0
JAVH Va por buen camino
Si, la MSDN de Microsoft, y también una búsqueda por Google arroja buenos resultados, también los foros de club builder
Código:
http://www.areabuilder.com
hay muy buena documentación, el problema ahí es que son un poco elitistas y si eres nuevo muchas veces no te hacen caso, pero es muy buen sitio para consultar, de ahí saqué este código

Código:
#if (__BORLANDC__ >= 0x0530) 
    #include <Comobj.hpp> 
#else 
    #include <oleauto.hpp>  // BCB 1 
#endif
......

Variant vWord, vDocumentos, vDocumento, vSeleccion, vBuscar; 
    String sPath = ExtractFilePath( Application->ExeName ); 
    String sFicheroPlantilla = sPath + "plantilla.doc"; 
    String sFicheroGenerado  = sPath + "plantilla2.doc"; 
    //--- Abre Word 
    vWord = CreateOleObject( "Word.Application" ); 
    vWord.OlePropertySet( "Visible", !checkGuardar->Checked ); 
    //--- Abre el documento que usaremos como plantilla 
    vDocumentos = vWord.OlePropertyGet( "Documents" ); 
    vDocumento = vDocumentos.OleFunction( "Open", 
        sFicheroPlantilla.c_str(),  // Documento 
        false,                      // Confirmar conversiones 
        true,                       // Modo se solo lectura 
        false,                      // Añadir al menu de ficheros recientes 
        ""                          // Clave del documento 
    ); 
    //--- Selecciona todo el documento para reemplazar 
    vSeleccion = vWord.OlePropertyGet( "Selection" ); 
    vSeleccion.OlePropertyGet( "Range" ).OleProcedure( "SetRange", 0, 0 ); 
    vBuscar = vSeleccion.OlePropertyGet( "Find" ); 
    vBuscar.OleProcedure( "ClearFormatting" ); 
    vBuscar.OlePropertyGet( "Replacement" ).OleProcedure( "ClearFormatting" ); 
    //--- sustituimos una palabra 
    // Aqui podemos meter el bucle que va a ir reemplanzando palabras 
    vBuscar.Exec( Procedure( "Execute" ) 
        << "{{nombre}}"               // Texto a buscar 
        << VT_EMPTY                   // Coincidir mayusculas y minusculas 
        << VT_EMPTY                   // Solo palabras completas 
        << VT_EMPTY                   // Usar caracteres comodin 
        << VT_EMPTY                   // Suena como 
        << VT_EMPTY                   // Todas las formas de la palabra 
        << true                       // Hacia adelante 
        << VT_EMPTY                   // Wrap 
        << VT_EMPTY                   // Format 
        << Edit1->Text.c_str()        // Reemplazar con... 
        << 2                          // 2 = reemplazar todo 
    ); 
    //--- sustituimos otra palabra 
    vBuscar.Exec( Procedure( "Execute" ) << "{{direccion}}" 
        << VT_EMPTY << VT_EMPTY << VT_EMPTY << VT_EMPTY << VT_EMPTY 
        << true << VT_EMPTY << VT_EMPTY << Edit2->Text.c_str() << 2 ); 
    //--- salvamos automaticamente si procede y cerramos Word 
    if ( checkGuardar->Checked ) 
    { 
        vDocumento.OleProcedure( "SaveAs", sFicheroGenerado.c_str() ); 
        vDocumento.OleProcedure( "Close", 0xFFFFFFFF); 
        vWord.OleProcedure( "Quit" ); 
        ShowMessage("Documento generado."); 
    } 
    vWord = vDocumentos = vDocumento = vSeleccion = vBuscar = Unassigned;
Es que no se puede saber todo HOYGAN.

Última edición por JAVH fecha: 24-09-2007 a las 22:12:06.
Responder Con Cita