Autor Tema: Alguna idea para realizar una transparencia al estilo AJAK  (Leído 7812 veces)

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

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Alguna idea para realizar una transparencia al estilo AJAK
« en: Agosto 09, 2011, 04:22:14 pm »
Hola quisiera realizar algo parecido a lo que se realiza en los navegadores creo con AJAX.

En un determinado momento mi programa muestra un formulario MDI maximizado y adelante otro  mas pequeño y centrado en forma modal (no MDCHILD). ahora yo quisiera de alguna forma mostrar todo lo que esta en el MDI como atenuado o desabilitado.

Espero alguien me ayude si es que se puede hacer.

Atte.
Yo el pibe bazooka!
« última modificación: Agosto 09, 2011, 04:23:55 pm por Bazooka »
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Alguna idea para realizar una transparencia al estilo AJAK
« Respuesta #1 en: Agosto 09, 2011, 05:02:06 pm »
Si hay codigo de eso doc, creo que en el blog de Leandro esta, sino ahora en la noche que llegue a mi casa te paso el que yo tengo.
Me encuentras en YAcosta.com

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Re:Alguna idea para realizar una transparencia al estilo AJAK
« Respuesta #2 en: Agosto 09, 2011, 05:25:42 pm »
Si hay codigo de eso doc, creo que en el blog de Leandro esta, sino ahora en la noche que llegue a mi casa te paso el que yo tengo.

Gracias Ivan!! siempre al pie del cañon!! vos.
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Alguna idea para realizar una transparencia al estilo AJAK
« Respuesta #3 en: Agosto 09, 2011, 06:40:29 pm »
Ve chequeando este proyecto de Leandro
http://www.leandroascierto.com.ar/categoria/M%C3%B3dulos/articulo/Cartel%20Notificatorio.php
Si te fijas alli tiene código de transparencia de formulario.
Me encuentras en YAcosta.com

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Re:Alguna idea para realizar una transparencia al estilo AJAK
« Respuesta #4 en: Agosto 10, 2011, 08:32:16 am »
Gracias Ivan pero no creo que me sirva este ejemplo de Leo
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

ssccaann43

  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Alguna idea para realizar una transparencia al estilo AJAK
« Respuesta #5 en: Agosto 10, 2011, 11:36:56 am »
Gracias Ivan pero no creo que me sirva este ejemplo de Leo

Miguel si funciona, fijate en la transparencia que le aplica al formulario tipo Notificación...!
Miguel Núñez.

cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Re:Alguna idea para realizar una transparencia al estilo AJAK
« Respuesta #6 en: Agosto 10, 2011, 11:05:37 pm »
Ivan, me parece que lo que el busca es algo comolo que postie en una pregunta tuya, el control que pone todo "gris" no se si te acordas, ya ni me acuerdo de que se trataba el tema.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Alguna idea para realizar una transparencia al estilo AJAK
« Respuesta #7 en: Agosto 10, 2011, 11:16:21 pm »
Si.. si recuerdo ese hilo je, en todo caso, a ver Miki postea mejor una captura de foto (AJAX) de lo que quieres obtener.
Me encuentras en YAcosta.com

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Re:Alguna idea para realizar una transparencia al estilo AJAK
« Respuesta #8 en: Agosto 11, 2011, 08:46:35 am »
Si exacto Cobein me entendio bien la idea es que lo que se ve debajo del form modal quede gris .
Ya lo he logrado y pongo una captura de lo que queria y como quedo un ejemplo simple.





El código del Modulo BAS que use es este:


Código: [Seleccionar]
Option Explicit

'Declaración del Api SetLayeredWindowAttributes que establece _
 la transparencia al form

Private Declare Function SetLayeredWindowAttributes Lib "user32" _
                (ByVal hWnd As Long, _
                 ByVal crKey As Long, _
                 ByVal bAlpha As Byte, _
                 ByVal dwFlags As Long) As Long


'Recupera el estilo de la ventana
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
                (ByVal hWnd As Long, _
                 ByVal nIndex As Long) As Long


'Declaración del Api SetWindowLong necesaria para aplicar un estilo _
 al form antes de usar el Api SetLayeredWindowAttributes

Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
               (ByVal hWnd As Long, _
                ByVal nIndex As Long, _
                ByVal dwNewLong As Long) As Long


Private Const GWL_EXSTYLE = (-20)
Private Const LWA_ALPHA = &H2
Private Const WS_EX_LAYERED = &H80000
'Función para saber si formulario ya es transparente. _
 Se le pasa el Hwnd del formulario en cuestión

Public Function Is_Transparent(ByVal hWnd As Long) As Boolean
On Error Resume Next

Dim Msg As Long

    Msg = GetWindowLong(hWnd, GWL_EXSTYLE)
       
       If (Msg And WS_EX_LAYERED) = WS_EX_LAYERED Then
          Is_Transparent = True
       Else
          Is_Transparent = False
       End If

    If err Then
       Is_Transparent = False
    End If

End Function

'Función que aplica la transparencia, se le pasa el hwnd del form y un valor de 0 a 255
Public Function Aplicar_Transparencia(ByVal hWnd As Long, _
                                      Valor As Integer) As Long

Dim Msg As Long

On Error Resume Next

If Valor < 0 Or Valor > 255 Then
   Aplicar_Transparencia = 1
Else
   Msg = GetWindowLong(hWnd, GWL_EXSTYLE)
   Msg = Msg Or WS_EX_LAYERED
   
   SetWindowLong hWnd, GWL_EXSTYLE, Msg
   
   'Establece la transparencia
   SetLayeredWindowAttributes hWnd, 0, Valor, LWA_ALPHA

   Aplicar_Transparencia = 0

End If


If err Then
   Aplicar_Transparencia = 2
End If

End Function
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

ssccaann43

  • Terabyte
  • *****
  • Mensajes: 970
  • Reputación: +97/-58
    • Ver Perfil
    • Sistemas Nuñez, Consultores y Soporte, C.A.
Re:Alguna idea para realizar una transparencia al estilo AJAK
« Respuesta #9 en: Agosto 11, 2011, 10:45:49 am »
Entendimos mal...! Pero bueno, ya gracias a Dios lo tienes resuelto che...!
Miguel Núñez.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Alguna idea para realizar una transparencia al estilo AJAK
« Respuesta #10 en: Agosto 11, 2011, 01:24:42 pm »
Chanfle, y yo que tenia código de eso también, bueno es un UC con nivel de gris. No capte lo de AJAX y solo me quede con transparencia jeje. Igual bien que lo tengas.

Saludos

Me encuentras en YAcosta.com

k_arlytos

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +2/-4
    • Ver Perfil
Re:Alguna idea para realizar una transparencia al estilo AJAK
« Respuesta #11 en: Febrero 28, 2014, 08:43:14 pm »
Chanfle, y yo que tenia código de eso también, bueno es un UC con nivel de gris. No capte lo de AJAX y solo me quede con transparencia jeje. Igual bien que lo tengas.

Saludos

QUE TAL SEGUIRAS TENDIENDO ESE CONTROL?
"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"