Nas skullmaster123. Fijate mejor que está muy ordenado y bastante bien estructurado. Lo que hace es llamar a la función transparencia (que te la puedes pillar tu y llamarla igual que hace él en tus programas) en los eventos form1_load (cuando se carga el formulario) y form1_queryunload (espera antes de descargar el formulario). La mejor forma es como lo ha hecho Karcrack....con for...next para aumentar o disminuir el valor alpha de la api SetLayeredWindowAttributes, que es la que produce la transparencia del formulario. Esta api se encuentra a partir de win2000. En los anteriores no funciona esta técnica. Te cuelgo otra forma de hacerlo con dos timers, pero te repito que la mejor forma es la que ha hecho Karcrack:
Const LWA_COLORKEY = &H1
Const LWA_ALPHA = &H2
Const GWL_EXSTYLE = (-20)
Const WS_EX_LAYERED = &H80000
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Ret As Long
Private cont2 As Integer
Private Sub Form_Load()
cont2 = 255
Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
Ret = Ret Or WS_EX_LAYERED
SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret
Timer1.Interval = 1
Timer2.Interval = 1
Timer2.Enabled = False
Timer1.Enabled = True
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = True
Timer2.Enabled = True
End Sub
Private Sub Timer1_Timer()
Static cont As Integer
cont = cont + 5
If cont > 255 Then
cont = 0
Timer1.Enabled = False
Else
SetLayeredWindowAttributes Me.hWnd, 0, cont, LWA_ALPHA
End If
End Sub
Private Sub Timer2_Timer()
cont2 = cont2 - 5
If cont2 < 0 Then
Timer2.Enabled = False
End
Else
SetLayeredWindowAttributes Me.hWnd, 0, cont2, LWA_ALPHA
End If
End Sub
Si buscas en google "formulario transparente visual basic" te van a salir un millón de páginas con este tema.
Respecto a tu 2º cuestión.....juer......que no es tan dificil. Mirate el código del form6 del programa. Lo único que hace es meter texto en un label poco a poco, utilizando un timer. Examinalo más detenidamente que no es tan dificil.
Siguo diciendo que le ha quedado bonito esas dos cosas
. Recuerdo cuando yo hacía marquesinas (desplazamiento del texto al estilo cartel) e impresión de texto en mi amstrand 6128 con el basic 1.2......y además le metiamos el sonido de la máquina de escribir cuando se imprimia el caracter!!!! que tiempos.
Saludos.