Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   Hyperlink en Word desde Delphi 2007 (https://www.clubdelphi.com/foros/showthread.php?t=76068)

Jose Manuel 06-10-2011 18:36:16

Hyperlink en Word desde Delphi 2007
 
Hola, busco ayuda para solucionar el siguiente problema. En un form tengo 2 campos, un titulo y una dirección web y quiero que Delphi 2007 cree un documento WORD generando un HIPERLINK con estos 2 campos, me funciona todo menos la instrucción para crear el HIPERLINK.

Código Delphi [-]
procedure TfbNot.btn_crear_wordClick(Sender: TObject);
var
texto1:string;
begin

 WordApplication1.Connect;
 WordApplication1.Visible:=True;
 WordDocument1.NewInstance; //Crear el doc
 WordFont1.ConnectTo(WordDocument1.Content.Font);
 WordFont1.Bold := 2;
 WordFont1.Name := 'Arial';
 WordFont1.Size := 11;
 //*****************************************************************************
 Texto1:='Prueba';
 WordDocument1.Content.InsertAfter(Texto1);
 WordDocument1.Tables.Add (WordDocument1.Words.Last,14,2,EmptyParam,EmptyParam); // nº de columnas y filas a crear
 WordDocument1.Tables.Item(1).Cell(2,1).Range.Text := c_web.text;      // link
 WordDocument1.Tables.Item(1).Cell(3,1).Range.Text := m_noticias.text; // noticia
 WordDocument1.Tables.Item(1).Cell(4,1).Range.Text := c_fuente.text;   // fuente
 //*****************************************************************************
 // Aquí esta el problema, quiero poner un hiperlink para la celda (1,1,), con 2 edits: c_web.text  y   c_titulo.text;

 WordDocument1.Hyperlinks.add( WordDocument1.Tables.Item(1).Cell(1,1).Range, c_web.text, '','',c_titulo.text);

 // este es el error: Types of actual and formal var parameters must be identical

 WordApplication1.DisConnect;
end;

Un saludo y muchas gracias a todos.
Jose Manuel.

Jose Manuel 12-10-2011 15:28:34

Delphi - Hyperlink a Word
 
He conseguido resolver una parte del problema, pero ahora me surge otro. El hiperlink se crea bien en la COLUMNA 1, pero en la columna 2 se descompone y se graba en la columna 1 a continuación del hiperlink de la columna 1.
Si alguien tiene alguna idea o sugerencia, será bienvenida.
Un saludo
Jose Manuel

Código Delphi [-]
procedure TfbNot.btn_crear_wordClick(Sender: TObject);
var
texto1:string;
Range: Variant;
Address:OLEvariant;
TextToDisplay:OLEvariant;
nombredoc : OleVariant;
f,c:integer;
begin

 WordApplication1.Connect;
 WordApplication1.Visible:=True;
 WordDocument1.NewInstance; //Crea un documento nuevo
 WordDocument1.PageSetup.Orientation  := wdOrientPortrait;
 WordDocument1.PageSetup.LeftMargin   := 42.55; //Puntos (1,5 centímetros)
 WordDocument1.PageSetup.RightMargin  := 42.55; //Puntos (1,5 centímetros)
 WordDocument1.PageSetup.TopMargin    := 42.55; //Puntos (1,5 centímetros)
 WordDocument1.PageSetup.BottomMargin := 56.70; //Puntos (2 centímetros)

 WordFont1.ConnectTo(WordDocument1.Content.Font);
 WordFont1.Bold  := 1;
 WordFont1.Name  := 'Arial';
 WordFont1.Size  := 20;
 WordFont1.Color := clMaroon;
 Texto1:='Boletín De Noticias';
 WordDocument1.Content.InsertAfter(Texto1);

 WordDocument1.Tables.Add (WordDocument1.Words.Last,4,2,EmptyParam,EmptyParam); // nº de columnas y filas a crear
 Range := WordDocument1.Tables.Item(1).range;
 Range.font.bold  := 1;
 Range.font.Name  := 'Book Antiqua';
 Range.font.size  := 10;
 Range.font.color := wdDarkBlue;
 Range.ParagraphFormat.Alignment := wdAlignParagraphJustify;// Center; Right;

// CELDA fila, columna  ********************************************************************
// comprobar que hemos creado las celdas
for f := 1 to 1 do
 for c := 1 to 2 do
 begin
 Range := WordDocument1.Tables.Item(1).Cell(f,c).range;
 Address        := trim(c_web.text);
 TextToDisplay  := trim(m_titulo.text);
---> aquí está el proablema, el hiperlink solo se crea bien en la COLUMNA1, falla en la 2
 WordDocument1.Hyperlinks.Add(Range, ADDRESS, EmptyParam, EmptyParam, TextToDisplay, EmptyParam);
 range.InsertAfter(chr(13)+chr(13)+m_noticias.text+#13+#13+c_fuente.text);
---> el resto del texto de la celda se graba correctamente, solo falla el HyperLink en la columna 2
 end;

 WordDocument1.Range.InsertParagraphAfter;
 WordDocument1.Paragraphs.Last.Range.Text :=' aquí va el pie de pagina ';

 WordApplication1.DisConnect;
end;


La franja horaria es GMT +2. Ahora son las 11:59:10.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi