Ver Mensaje Individual
  #3  
Antiguo 29-10-2015
El_Chava El_Chava is offline
Miembro
 
Registrado: jun 2005
Posts: 62
Reputación: 19
El_Chava Va por buen camino
Resuelto

Bueno al fin dí con una solución no se si será la más adecuada pero hace lo que necesito. Para esto se uso un marcador en donde se insertara lo contenido en el richMemo. Al final lo que utilice es que lo que contenga en el richmemo lo coopio al portapapeles y al final realizo un pegado especial en el documento word. Aquí les dejo el código.

Código:
var
  Word,marcador,doc1: Variant;
  w:widestring;
 try
    {* a la variable "w" le asigno la ruta donde se encuentra la plantilla a utilizar *}
    w:= UTF8Decode(ExtractFilePath(application.ExeName)+'plantillas\Respuesta01.rtf');
    Word := CreateOleObject('Word.Application');
    (* Añades un documento basado en la plantilla *)
  Documento := Word.Documents.Add(w);
  Documento := Word.Documents.Item(1);
  doc1:= Word.ActiveDocument;
  RichMemo1.SelectAll; {Se selecciona todo el texto que contenga el Rich memo}
  RichMemo1.CopyToClipboard {Se copia lo seleccionado al portapapeles};
  Richmemo1.SelLength:=0 {se quita la selección};   
 if Doc1.Bookmarks.Exists('prueba') then   {Chequea si existen las marcas en el documento}
  Begin
       Doc1.Bookmarks.Item('prueba').Range.PasteSpecial; 
{Se realiza el pegado especial del portapapeles en el marcador creado
 en el documento de word}
 end;     

Word.Visible := true;  {Make Word visible}
Clipboard.Clear;{se limpia el portapales}
  except
   on E: Exception do
      ShowMessage(SysToUTF8(E.Message));
  end;
Para limpiar el portapaples es necesario que usar el unit Clipbrd. Espero y les sirva este metodo. Saludos.
Responder Con Cita