Estimados amigos:
Quisiera nuevamente pedirles una orientación o sugerencia en relación a un problema que tengo con un programa que estoy haciendo, es una aplicación muy sencilla que consiste en insertar texto en un documento plantilla. Tengo marcadores en el mismo pero no me los pone, es más, me pone una especie de símbolos de escritura china o algo así,( si son muy extraños). El código en cuestión es el siguiente:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
const
PlantillaWord = 'c:\Factura\FacturaPlantilla.doc';
var
doc, R,WordApp: Variant;
BookmarkNombre,BookmarkNombre1,BookmarkNombre2,BookmarkNombre3: OleVariant;
BookmarkNombre4,BookmarkNombre5,BookmarkNombre6,BookmarkNombre7,BookmarkNombre8: OleVariant;
Nombre, Direccion, codigopostal, dni,telefono :String;
Begin
try
WordApp := CreateOleObject('Word.Application');
except
ShowMessage('No se puede arrancar MS Word!');
end ;
WordApp.Documents.Open(PlantillaWord);
WordApp.Visible:=True;
Doc := WordApp.ActiveDocument;
WordApp.selection.Font.Name := 'Arial';
WordApp.selection.Font.Size := 12;
BookmarkNombre := 'Marcador1';
BookmarkNombre1 := 'Marcador2';
BookmarkNombre2 := 'Marcador3';
BookmarkNombre3 := 'Marcador4';
BookmarkNombre4 := 'Marcador5';
BookmarkNombre5 := 'Marcador6';
BookmarkNombre6 := 'Marcador7';
BookmarkNombre7 := 'Marcador8';
BookmarkNombre8 := 'Marcador9';
Nombre:=Edit1.Text;
Direccion:=Edit2.Text;
if Doc.Bookmarks.Exists(BookmarkNombre) then
Begin
R := Doc.Bookmarks.Item(BookmarkNombre).Range;
R.InsertAfter(Nombre);
R := Doc.Bookmarks.Item(BookmarkNombre1).Range;
R.InsertAfter(Direccion);
R := Doc.Bookmarks.Item(BookmarkNombre2).Range;
R.InsertAfter('.'+Edit3.Text);
R := Doc.Bookmarks.Item(BookmarkNombre3).Range;
R.InsertAfter('. '+Edit4.Text);
R := Doc.Bookmarks.Item(BookmarkNombre4).Range;
R.InsertAfter(' .'+Edit5.Text);
R := Doc.Bookmarks.Item(BookmarkNombre5).Range;
R.InsertAfter('.'+Edit10.Text);
R := Doc.Bookmarks.Item(BookmarkNombre6).Range;
R.InsertAfter('-'+Edit11.Text);
R := Doc.Bookmarks.Item(BookmarkNombre7).Range;
R.InsertAfter('*'+Edit12.Text);
if RadioButton1.Checked=True then
begin
R := Doc.Bookmarks.Item(BookmarkNombre8).Range;
R.InsertAfter('CONTADO');
end;
if RadioButton2.Checked=True then
begin
R := Doc.Bookmarks.Item(BookmarkNombre8).Range;
R.InsertAfter('CREDITO');
end;
if RadioButton3.Checked=True then
begin
R := Doc.Bookmarks.Item(BookmarkNombre8).Range;
R.InsertAfter('OTRO');
end;
end ;
end;
Espero que puedan orientarme en el error que estoy cometiendo, y darles las gracias de antemano.
Un saludo.