Ver Mensaje Individual
  #5 (permalink)  
Antiguo 24/10/2009, 22:55
Avatar de neo101
neo101
 
Fecha de Ingreso: julio-2007
Mensajes: 73
Antigüedad: 16 años, 9 meses
Puntos: 1
Respuesta: no puedo ver la opacidad gradual

Gracias por tu respuesta.

La variable estado, es un miembro privado d esta clase, en el supuesto; estoy entendiendo que esta se inicializa como nueva, modificando un poco el código, y aplicando mas timers, me sucede exactamente lo mismo; de entrada esta variable que declaré como entea queda en cero:

Código vb.net:
Ver original
  1. 'Sub New()
  2. Public Sub New()
  3.             MyBase.New()
  4.             SetStyle(ControlStyles.AllPaintingInWmPaint, True)
  5.             SetStyle(ControlStyles.UserPaint, True)
  6.             SetStyle(ControlStyles.OptimizedDoubleBuffer, True)
  7.             Me.BackColor = Color.Transparent
  8.             x2 = 0
  9.             y2 = 0
  10.             ancho = Me.Width
  11.             alto = Me.Height
  12.             modecolor = 1
  13.             Color1 = Color.Black
  14.             Color2 = Color.White
  15.             Color3 = Color.Black
  16.             posiciones = New Single() {0, 0.2, 1.0}
  17.             Av = 255
  18.             Vel = 16
  19.             intervalo = 25
  20.             intervalo2 = 50
  21.             timer1 = New System.Windows.Forms.Timer
  22.             timer2 = New System.Windows.Forms.Timer
  23.             AddHandler timer1.Tick, AddressOf Me.timer1_tick
  24.             AddHandler timer2.Tick, AddressOf Me.timer2_tick
  25.             edo1 = 0
  26.             edo2 = 0
  27.         End Sub

Arbitrariamente le asigno un valor negativo si quiero desvanecer y un positivo para que aparezca de nuevo, y aunq ponga el .visible = x en algun lugar o despues de completar la opacida, no hay cambios!! Realiza este efecto sin poderme dar las opciones o efectos que necesito... CAbe mencionar que para no sobreescribir las cosas, use timers y variables x separado... Les dejo los códigos que inicializan los efectos y los tick's q usé... ya me quedé sin ideas, la vdd...

Código vb.net:
Ver original
  1. Public Sub Sh() 'aparece el panel...
  2.             While edo1 <> 0
  3.             End While
  4.             timer1.Interval = intervalo
  5.             edo1 = 1
  6.             timer1.Start()
  7.         End Sub
  8.  
  9.         Public Function ShowAllObjects() As Integer '.visible = TRUE a todos los objetos contenidos...
  10.             While edo2 <> 0
  11.             End While
  12.             timer2.Interval = intervalo2
  13.             edo2 = 1
  14.             idx = 0
  15.             timer2.Start()
  16.         End Function
  17.  
  18.         Public Sub Hy() 'desaparece el panel...
  19.             While edo1 <> 0
  20.             End While
  21.             timer1.Interval = intervalo
  22.             edo1 = -1
  23.             timer1.Start()
  24.         End Sub
  25.  
  26.         Public Function HideAllObjects() As Integer '.visible = false
  27.             While edo2 <> 0
  28.             End While
  29.             timer2.Interval = intervalo2
  30.             edo2 = -1
  31.             idx = 0
  32.             timer2.Start()
  33.         End Function
  34.  
  35.         Private Sub timer1_tick(ByVal sender As Object, ByVal e As System.EventArgs)
  36.             If edo1 < 0 Then
  37.                 If Me.Opacity = 0 Then
  38.                     timer1.Stop()
  39.                     edo1 = 0
  40.                 Else
  41.                     Me.Opacity -= Vel
  42.                 End If
  43.             End If
  44.             If edo1 > 0 Then
  45.                 If Me.Opacity = 255 Then
  46.                     timer1.Stop()
  47.                     edo1 = 0
  48.                 Else
  49.                     Me.Opacity += Vel
  50.                 End If
  51.             End If
  52.             Me.Refresh()
  53.         End Sub
  54.  
  55.         Private Sub timer2_tick(ByVal sender As Object, ByVal e As System.EventArgs)
  56.             If idx >= Me.Controls.Count Then
  57.                 timer2.Stop()
  58.                 edo2 = 0
  59.             End If
  60.             If edo2 > 0 Then 'showall
  61.                 Me.Controls(idx).Visible = True
  62.             End If
  63.             If edo2 < 0 Then        'hideall
  64.                 Me.Controls(idx).Visible = False
  65.             End If
  66.         End Sub

Gracias a todos x su atención...