PDA

Ver la Versión Completa : Posicionar cursor en word


nacho
08-03-2005, 21:04:24
Necesito colocar el cursor al final del documento (o en otra posicion) de un documento de word, utilizando TwordDocument o TwordApplication, ¿como le hago?

Neftali [Germán.Estévez]
09-03-2005, 09:09:28
Necesito colocar el cursor al final del documento (o en otra posicion) de un documento de word, utilizando TwordDocument o TwordApplication, ¿como le hago?

WordApp.Selection.EndKey(wdStory);

Wdo.Net
11-07-2006, 04:09:13
WordApp.Selection.EndKey(wdStory);




Hola Neftali, me gustaria fueras un poco más explicito en tu respuesta, ya que supongo que WordApp corresponde a un componente WordApplication, pero lo de wdStory, no se a que se refiere. Te agrdezco la aclaracion, ya estoy necesitando cambiar de posicion el cursor en un documento de word. Gracias.

Neftali [Germán.Estévez]
11-07-2006, 09:47:03
Bueno, pues abre un proyecto nuevo y coloca un botón con el siguiente código:



var
Word: Variant;
Documento: Variant;
begin
// Crear el objeto
Word := CreateOleObject('Word.Application');
// Abrir el documento que necesirtes
Word.Documents.Open('C:\Temp\info_english.doc');
// Maximizar ventana (1)
Word.ActiveWindow.WindowState := wdWindowStateMaximize;
// Hace visible la ventana de Word
Word.Visible:=True;
// Mandar el cursor al final (2)
Word.Selection.EndKey(wdStory);

...


Debes añadir al uses la unit ComObj;
Las constantes marcadas en rojo, están definidas en unas units que suelen estar en éste directorio:
"c:\Archivos de programa\Borland\Delphi6\Ocx\Servers\"
Verás que hay para Word97, Word2000,...

En mi caso he añadido al uses también la unit Word2000.

Un saludo.

Wdo.Net
11-07-2006, 19:04:05
Te agradezco la respuesta que me has enviado, voy a tener en cuenta esta solución y luego te comento. Gracias.

Wdo.Net
12-07-2006, 04:02:15
Hola, Neftalí, hoy probé el código que me sugeriste y funcionó correctamente, pero aún tengo incoveniente con lo que realmente quiero hacer, por eso a continuación voy a colocar el codigo que estoy utilizando para tratar de exportar: Los datos contenidos en un StringGrid y a continuacion de estos, dejando por ejemplo dos espacios , insertar un grafico correspondiente a dichos datos. Te aclaro que la parte de introducir los datos del StringGrid en un documento de Word funciona correctamente, pero el inconveniente precisamente es que el cursor queda posicionado en la celda (1,1) de la tabla en Word, y debido a esto no puedo colocar la imagen de un Chart en una posicion diferente de la hoja o documento de Word.

Codigo:

procedure TMDIChildMAD.SBEWordClick(Sender: TObject);
var
WordTable: Table;
i, j, RowCount, ColCount: Integer;
W, S, Nombre, Formato: OleVariant;
begin
if High(MMAD) <> -1 then
begin
if SDMAD.Execute then
begin
WDMAD.Connect;
try
RowCount := Actores;
ColCount := Actores;
WordTable := WDMAD.Tables.Add(WDMAD.Range,RowCount + 1,ColCount + 1,W,S);
for i := 1 to ColCount do
begin
WordTable.Cell(1, i + 1).Range.Font.Bold := 1;
WordTable.Cell(1, i + 1).Range.Text := MActores[i - 1][0];
WordTable.Cell(1, i + 1).Range.Paragraphs.Alignment := wdAlignParagraphCenter;
WordTable.Cell(1, i + 1).Range.Cells.Shading.BackgroundPatternColor:= clSilver;
end;
for i := 1 to RowCount do
begin
WordTable.Cell(i + 1, 1).Range.Font.Bold := 1;
WordTable.Cell(i + 1, 1).Range.Text := MActores[i - 1][0];
WordTable.Cell(i + 1, 1).Range.Paragraphs.Alignment := wdAlignParagraphCenter;
WordTable.Cell(i + 1, 1).Range.Cells.Shading.BackgroundPatternColor:= clSilver;
end;
for i:= 1 to RowCount do
for j:= 1 to ColCount do
begin
WordTable.Cell(i + 1, j + 1).Range.Text:=IntToStr(MMAD[i - 1][j - 1]);
WordTable.Cell(i + 1, j + 1).Range.Paragraphs.Alignment := wdAlignParagraphCenter;
if i = j then WordTable.Cell(i + 1, j + 1).Range.Cells.Shading.BackgroundPatternColor:= clCream;
end;
WordTable.Borders.Enable:= 1;
finally
Nombre:= SDMAD.FileName;
WDMAD.SaveAs(Nombre,Formato);
WDMAD.Application.Visible := true;
WDMAD.Disconnect;
end;
end;
end
else ShowMessage('La Matriz MAD no ha sido guardadada');
end;

WDMAD: TWordDocument.
SDMAD: TSaveDialog.

Neftali [Germán.Estévez]
12-07-2006, 09:42:09
Por favor, utiliza TAG's (http://neftali.clubdelphi.com/images/ResaltarSintaxisDelphi.png) cuando añadas código delphi, SQL, PHP,... a los mensajes.

Wdo.Net
13-07-2006, 23:40:14
Listo, Neftalí, ya utilice las TAG's en el código.

Neftali [Germán.Estévez]
14-07-2006, 10:44:49
Gracias.
Mejora mucho la visión y cuesta poco. ;)

babiano
10-08-2006, 13:30:09
por favor, me podeis indicar el codigo de como sacar el cursor de la celda(1,1) de la tabla y posicionarlo al inicio del documentoa activo.
Gracias