[RESUELTO] Color de fondo de cada diapositiva en impress

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...

[RESUELTO] Color de fondo de cada diapositiva en impress

Notapor arivas_2005 » Jue Feb 11, 2016 11:20 pm

Saludos.
Cömo se puede obtener el color de fondo de cada diapositiva en la presentacion (el aplicado por medio de [Formato-página-fondo-color] )
Estoy usando la prueba y error, con estas lineas, pero no logro leer cada color.

Código: Seleccionar todo   Expandir vistaContraer vista
sub colorfondoslide

  Dim oDrawPages as Object, oDrawPage as Object
  oDrawPages = Thiscomponent.getDrawPages()     
 
  totalslides=Thiscomponent.getDrawPages().count
   
  for a=0 to totalslides-1
  Dim Fondo as Object
     oDrawPage = oDrawPages.getByIndex(a)
     Fondo = Thiscomponent.createInstance("com.sun.star.drawing.Background")
   
   ' ESTA SECCION SI APLICA COLOR DE FONDO EN CADA DIAPOSITIVA
   Fondo.FillColor  = RGB(250,110,0) 
     oDrawPage.Background = Fondo
     
   'pero siguiendo la lógica de las expresiones,  al intentar extraer los valores de colores con msgbox
   'solo me aparece el mismo numero aunque las diaspositivas
    'tengan distinto color de fondo
    msgbox Fondo.Fillcolor   '
    msgbox oDrawPage.Background  ' esta me da error
  next
 
end sub     


Mi interés por hoy, no es colorear cada diapositiva, sino establecer si tienen color de fondo y si tienen, cual es el valor correspondiente del color.

Gracias
Última edición por mauricio el Mié Feb 17, 2016 2:42 pm, editado 2 veces en total
Razón: Marcar icono de resuelto
Libreoffice 4.7
Puppy slacko 6 y windows 7
arivas_2005
 
Mensajes: 150
Registrado: Mié Nov 16, 2011 6:01 pm

Re: Color de fondo de cada diapositiva en impress

Notapor mauricio » Jue Feb 11, 2016 11:47 pm

Hola...

Si vas a usar prueba y error, te recomiendo mucho aprender a usar MRI, será mucho más productiva tu búsqueda...

Prueba con:
Código: Seleccionar todo   Expandir vistaContraer vista
   doc = ThisComponent
   pages = doc.getDrawPages()

   For i = 0 To pages.GetCount() - 1
      page = pages.getByIndex(i)
      info = page.Background
      If info Then
         MsgBox info.FillColor
      End If
   Next i

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 6062
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX

Re: Color de fondo de cada diapositiva en impress

Notapor arivas_2005 » Vie Feb 12, 2016 12:03 am

Hola Mauricio
Gracias por su apoyo.

Ya ejecuté el código que me proporcionó y me da un error asi

If info Then <--- Valor de propiedad incorrecto

Estoy usando Libreoffice Versión: 5.0.3.2 en puppy slacko 6

Exitos!.
Libreoffice 4.7
Puppy slacko 6 y windows 7
arivas_2005
 
Mensajes: 150
Registrado: Mié Nov 16, 2011 6:01 pm

Re: Color de fondo de cada diapositiva en impress

Notapor mauricio » Vie Feb 12, 2016 12:40 am

Tu firma dice OpenOffice 3.2, ojala puedas actualizarla...

Prueba con:
Código: Seleccionar todo   Expandir vistaContraer vista
       doc = ThisComponent
       pages = doc.getDrawPages()

       For i = 0 To pages.GetCount() - 1
          page = pages.getByIndex(i)
          info = page.Background
          If VarType(info) Then
             MsgBox info.FillColor
         End If
       Next i

Lo he probado con LibreOffice 4.4.7 en ArchLinux y LibO 5.03 en Linux Mint de forma correcta...

Saludos
______________________________________________
"Todo cuanto no podemos dar nos posee". - André Gide
LibreOffice 6.2 | ArchLinux | Gnome3
No respondo preguntas privadas, por favor, usa el foro
Avatar de Usuario
mauricio
 
Mensajes: 6062
Registrado: Sab Nov 22, 2008 5:36 am
Ubicación: CDMX


Volver a Macros y API UNO

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados