Autor Tema: No se cambia la imagen de fondo del MDI  (Leído 4271 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Paulita

  • Kilobyte
  • **
  • Mensajes: 69
  • Reputación: +2/-1
    • Ver Perfil
No se cambia la imagen de fondo del MDI
« en: Junio 30, 2014, 09:17:48 pm »
Buenas noches! Escribo en esta oportunidad porque tengo un problema no se me cambia la imagen de fondo del mdi, el código que estoy trabajando es el siguiente:

Private Sub MDIForm_Load()
Call VerificarResolucion
 Timer2.Interval = 1000
End sub

Sub VerificarResolucion() 'para obtener los valores de la resolución que se está trabajando
alto = Screen.Height / 15 'aquí obtienes el valor de alto de la pantalla en pixels
largo = Screen.Width / 15 'aquí obtienes el valor de ancho de la pantalla en pixels
'Nota que al dividirlos por quince se obtiene el valor en pixels, pues lo entrega en "Twip"

Select Case largo
Case largo >= 800 Or largo <= 1020
    x = 1
limite = 3
Case largo >= 1024 Or largo <= 1300
    x = 4
limite = 7
Case Is >= 1366
    x = 8
    limite = 11
End Select

End Sub

Private Sub Timer2_Timer()
INTERVALO_EN_MINUTOS = 1
' incrementa
Temp_Seg = Temp_Seg + 1
' comprueba que los segundos no sea igual a la cantidad de minutos _
  que queremos , en este caso 5 minutos
If (Temp_Seg * 60) >= (INTERVALO_EN_MINUTOS * 60) * 60 Then
   ' reestablece
   Temp_Seg = 0
   MenuPrincipal.Picture = Nothing
   MenuPrincipal.Picture = ImageList2.ListImages(x).Picture
   If limite = x Then x = x - 2 Else x = x + 1
End If

End Sub

La imagen está en un imagelist, lo que hago es que primero se verifica la resolución que tiene la computadora si en el caso es 800x600 se toma la imagen desde 1 hasta 3 y así sucesivamente pero cuando llega al timer y pasan los 2 minutos, y debería de cambiar la imagen, pero esta línea como que no funcionara porque siempre me deja la imagen que tiene, es decir, no me la cambia
MenuPrincipal.Picture = ImageList2.ListImages(x).Picture

Como hago para que la imagen se cambie?

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:No se cambia la imagen de fondo del MDI
« Respuesta #1 en: Julio 01, 2014, 11:09:32 am »
Hola, aca te prepare un ejemplo de como yo me manejo con el MDI para poner un logo en el fondo y que siempre este centrado según el tamaño que tenga.

SOURCE
https://www.mediafire.com/?75alcc4mcha48gm

SCREEN


Saludos !!!
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

Paulita

  • Kilobyte
  • **
  • Mensajes: 69
  • Reputación: +2/-1
    • Ver Perfil
Re:No se cambia la imagen de fondo del MDI
« Respuesta #2 en: Julio 01, 2014, 01:50:29 pm »
Hola Enter mucha gracias me sirvio bastante :):D ahora si se cambia las imagenes.
Una preguntica estuve revisando la clase por casualidad tiene una propiedad que sea autosize?

E N T E R

  • Petabyte
  • ******
  • Mensajes: 1062
  • Reputación: +57/-13
  • www.enterpy.com
    • Ver Perfil
    • www.enterpy.com
Re:No se cambia la imagen de fondo del MDI
« Respuesta #3 en: Julio 01, 2014, 03:27:58 pm »
No no tiene eso solo el de centrar y poner degrade o color solido el fondo

Saludos...
CIBER GOOGLE - CONCEPCIÓN PARAGUAY
www.enterpy.com
Primera regla de la programacion, para que vas a hacerlo complicado si lo puedes hacer sencillo

Paulita

  • Kilobyte
  • **
  • Mensajes: 69
  • Reputación: +2/-1
    • Ver Perfil
Re:No se cambia la imagen de fondo del MDI
« Respuesta #4 en: Julio 03, 2014, 10:56:14 am »
Ok, Muchas Gracias, asi me sirvió bastante :D

Paulita

  • Kilobyte
  • **
  • Mensajes: 69
  • Reputación: +2/-1
    • Ver Perfil
Re:No se cambia la imagen de fondo del MDI
« Respuesta #5 en: Julio 06, 2014, 08:03:50 pm »
Hola Enter,  estoy trabajando con el ejemplo que menciona arriba, cuando se carga el mdi con la imagen perfecto pero hay algo que está pasando, que cuando las imágenes se cambia y tengo un reporte abierto de crystal reports 8 entonces  el reporte se pierde el focus y regresa a la aplicación, como hago para que en el caso que se esté mostrando el reporte, no suceda eso?

El único código que le agregue fue este:

Private Sub Timer2_Timer()
INTERVALO_EN_MINUTOS = 1
' incrementa
Temp_Seg = Temp_Seg + 1
' comprueba que los segundos no sea igual a la cantidad de minutos _
  que queremos , en este caso 1 minutos
If (Temp_Seg * 60) >= (INTERVALO_EN_MINUTOS * 60) * 60 Then
   ' reestablece
   Temp_Seg = 0
  Call Renderear(App.Path & "\Imagenes\" & ruta & "biblioteca" & x & ".jpg")
   If x = 4 Then x = 1 Else x = x + 1
End If
End Sub

coco

  • Administrador
  • Terabyte
  • *****
  • Mensajes: 548
  • Reputación: +63/-3
    • Ver Perfil
Re:No se cambia la imagen de fondo del MDI
« Respuesta #6 en: Julio 06, 2014, 08:20:18 pm »
Paulita, fijate bien que el codigo que pusiste incializa el objeto oFondo cada vez que llamas a "Renderear".
Considerá en inicializarlo unicamente en el MDIForm_Load() estableciendo estos valores:
Código: (vb) [Seleccionar]
       
    With oFondo
       
        Set .Client = Me

        .Color = &HC0&                  'Color del fondo del MDI &H8000000C
        .GraphicPosition = mdiCentered  'Posicion del logotipo
        .BackStyle = mdiGradient        'Forma de pintar el MDI en : mdiGradient o mdiSolid
        .AutoRefresh = True             '&H8000000C
       
    End With

Luego, en tu Timer2_Timer(), reemplaza Renderear() por esto:
Código: (vb) [Seleccionar]
            Set oFondo.Graphic = LoadPicture(App.Path & "\Imagenes\" & ruta & "biblioteca" & x & ".jpg")

Como nota, lo que sucedia es que cada vez que llamabas a Renderear, establecias el .Client, y al hacer eso creaba un PictureBox en el MDI, el cual evidentemente hacia perder el foco del hijo.

       
'-     coco
(No me cabe: Java, Python ni Pascal)
SQLite - PIC 16F y 18F - ARM STM32 - ESP32 - Linux Embebido - VB6 - Electronica - Sonido y Ambientacion

Paulita

  • Kilobyte
  • **
  • Mensajes: 69
  • Reputación: +2/-1
    • Ver Perfil
Re:No se cambia la imagen de fondo del MDI
« Respuesta #7 en: Julio 07, 2014, 02:03:02 pm »
Hola coco, gracias ahora si me funciona, ya no se pierde el focus