Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   Poner los bordes en una tabla con TWordApplication (https://www.clubdelphi.com/foros/showthread.php?t=82689)

Mizosok 03-04-2013 17:36:41

Poner los bordes en una tabla con TWordApplication
 
Hola!!

Estoy generando una tabla de word desde Delphi con TWordApplication, pero no me muestra los bordes de la tabla, es decir se muestran todas las celdas, pero ni los bordes de la columnas, ni de las filas se muestran.

Pudieran orientarme que debo poner para lograr que se vean los bordes?

Estoy trabajando con Delphi6

Agradecería cualquier sugerencia.....

Mizos

Al González 03-04-2013 21:52:51

Te recomiendo que hagas la operación manualmente, en el interior de Word, grabando una "macro". Entonces le pides a Word que te muestre el código de dicha macro y así sólo tendrás que copiar ese código a tu programa Delphi con un mínimo de adecuaciones.

Saludos. :)

Mizosok 04-04-2013 17:03:00

Hola AL, gracias por responderme,

Yo realmente lo que he hecho siempre es eso que me sugieres, es decir, ver el codigo de una macro y despues buscar un similar con Delphi.

Pero en este caso lo que no sé es a quien pertenecen un grupo de propiedades tales como Style, ApplyStyleHeadingRows, ApplyStyleLastRow, ...., en TWordApplication.....

Le muestro la macro para que me entienda mejor...

Esta macro muestra solo una tabla simple de 4x3.. y con los dichosos bordes que estoy buscando...

Sub Macro5()
'
' Macro5 Macro
'
'
ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=4, NumColumns:= _
5, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
wdAutoFitFixed
With Selection.Tables(1)
If .Style <> "Tabla con cuadrícula" Then
.Style = "Tabla con cuadrícula"
End If
.ApplyStyleHeadingRows = True
.ApplyStyleLastRow = False
.ApplyStyleFirstColumn = True
.ApplyStyleLastColumn = False
.ApplyStyleRowBands = True
.ApplyStyleColumnBands = False
End With
End Sub

Dicen por ahi que hay un paquete que creo que se llama Word para Torpes o algo parecido pero no encuentro un sitio para descargarlo....aunque repito, hasta ahora he resuelto de la forma que usted me explica

Precisamente soy nuevo en este foro, y algo de lo que me impulsó hacerlo es esta duda que tengo, y decidí en buscar ayuda.....

Trabajo con Delphi 6

Muchas gracias nuevamente, muy amable,

Mizos

Al González 05-04-2013 19:12:54

Cita:

Empezado por Mizosok (Mensaje 458052)
Pero en este caso lo que no sé es a quien pertenecen un grupo de propiedades tales como Style, ApplyStyleHeadingRows, ApplyStyleLastRow [...]

Código:

Sub Macro5()
'
' Macro5 Macro
'
'
    ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=4, NumColumns:= _
        5, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
        wdAutoFitFixed
    With Selection.Tables(1)
        If .Style <> "Tabla con cuadrícula" Then
            .Style = "Tabla con cuadrícula"
        End If
        .ApplyStyleHeadingRows = True
        .ApplyStyleLastRow = False
        .ApplyStyleFirstColumn = True
        .ApplyStyleLastColumn = False
        .ApplyStyleRowBands = True
        .ApplyStyleColumnBands = False
    End With
End Sub


Según se aprecia, esas propiedades (las que comienzan con un punto) pertenecen al objeto indicado en el "With", es decir, son propiedades de "Selection.Tables(1)".

Casimiro Notevi 05-04-2013 21:03:45

Cita:

Empezado por Mizosok (Mensaje 458052)
..

Por favor, no repitas hilos, gracias.
No olvides nuestra guía de estilo.

Mizosok 06-04-2013 15:04:45

Poner los bordes en una tabla con TWordApplication
 
Gracias AL,

Lo que no sé es como es el similar en Delphi de Selection.Tables(1).ApplyStyleHeadingRows=True por ejemplo,
Yo en mi código, pongo: ap.Selection.Tables.Item(1).ApplyStyleHeadingRows:=True
donde: ap:TWordApplication
y esa propiedad no se reconoce en Delphi,

Es posible que yo no esté poniéndo la propiedad donde realmente la lleva o esté poniendo algo mal...

Gracias AL, muy amable en volverme a responder.

Mizos

Al González 09-04-2013 08:10:10

Cita:

Empezado por Mizosok (Mensaje 458168)
[...] y esa propiedad no se reconoce en Delphi [...]

Exacto, Mizos, Delphi no la predefine. Cuando manejas objetos OLEVariant, es hasta ejecutar el programa cuando se buscan esas referencias de propiedades y métodos. ¿Genera algún error cuando lo ejecutas?

Saludos. :)

Mizosok 10-04-2013 19:02:00

Poner Bordes en una tabla con TWordApplication
 
No, no es que genere error, el problema es que dentro de TWordApplication, no existen..., es decir cuando la trato de buscar (en delphi) no la encuentro...

De todas forma Al, volvi a editar la macro de Visual Basic en Word y solo deje esta instrucción...

ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=4, NumColumns:= _ 5, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _ wdAutoFitFixed

O sea, le quité las otras propiedades que vienen con el With,
y cuando ejecuto la nueva macro editada me genera la tabla con bordes,
como yo la quiero.....

Y cuando pongo la misma instrucción en delphi de la forma siguiente:

ap.ActiveDocument.Tables.Add( ap.Selection.Range, 3, 4,
DefaultTableBehavior, AutoFitBehavior );

ap es del tipo TWordApplication y

declaro:

DefaultTableBehavior y
AutoFitBehavior como Olevariant // Estas variables son de referencia

Delphi me muestra una tabla pero sin los bordes, entonces que pudiera ser?


La franja horaria es GMT +2. Ahora son las 08:41:24.

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