Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: EddyW en 30 Enero 2010, 07:02 am



Título: Cambiar de color un TextBox al recibir o perder el enfoque - Api GetFocus
Publicado por: EddyW en 30 Enero 2010, 07:02 am
Cambiar de color un TextBox al recibir o perder el enfoque - Api GetFocus

Esta vez no es una funcion, todo el papeleo lo cumple un Timer..
Es sencillo usamos la Api GetFocus para saber el Handle del objeto tiene el enfoque, luego recorremos todos los controles del form1 buscando a que objeto pertenece el Handle, al encontrarlo verificamos si es un TextBox con la función TypeName propia de VB6, sin mas que decir un Screen y el código:
(Aclaro que el ejemplo esta basado en la descripcion de la OCX de (Este Link) (http://www.recursosvisualbasic.com.ar/htm/ocx-componentes-activex-dll/96-ocx-textmod-para-cambiar-de-color-al-perder-el-foco.htm))
(http://img693.imageshack.us/img693/7683/dibujogi.png) (http://img693.imageshack.us/i/dibujogi.png/)

Es posible cambiar el color, no es complicado hacerlo..
El codigo; declaramos la API y luego añadimos un Timer1 a nuestro Form1 y establecemos la propiedad Interval a 1:
Código:
Private Declare Function GetFocus Lib "user32" () As Long

Private Sub Timer1_Timer()
On Error Resume Next
Dim Obj As Object, BackBackup As Long
For Each Obj In Form1.Controls
    If (TypeName(Obj) = "TextBox" Or TypeName(Obj) = "ComboBox") _
    And GetFocus = Obj.hWnd Then
        If Err Then
            Err.Clear
        Else
        BackBackup = Obj.BackColor
        Do
        If Obj.hWnd = GetFocus Then
            Obj.BackColor = vbGreen
        Else
            Obj.BackColor = BackBackup
            Exit Sub
        End If: DoEvents
        Loop
        End If
    End If
    DoEvents
Next
End Sub
Espero les guste y les sea de utilidad.. ;)

SaluDOS!!!


Título: Re: Cambiar de color un TextBox al recibir o perder el enfoque - Api GetFocus
Publicado por: BlackZeroX en 30 Enero 2010, 09:48 am
Para que privarse con esa api para algo tan sencillo si se tienen la los eventos, digo esa api estaría bien pero en otras utilidades pero para un textbox o controles donde tenemos acceso y sus eventos están al pie de utilidad y sirven esa api esta demás, digo de ejemplo esta bien pero realmente esta demás.

Código
  1.  
  2. Private Sub Text1_GotFocus()
  3.    '  //  Eventos
  4. End Sub
  5.  
  6. Private Sub Text1_LostFocus()
  7.    '  //  Eventos
  8. End Sub
  9.  
  10.  

Temibles Lunas!¡.
.


Título: Re: Cambiar de color un TextBox al recibir o perder el enfoque - Api GetFocus
Publicado por: EddyW en 3 Febrero 2010, 03:11 am
Si.., pero por lo menos a mi no me gustaría tener un montón de eventos GotFocus y LostFocus si es que usaría muchos TextBox..
y la idea no solo se aplica en TextBox puede ser en otros controles también ;)

SaluDOS!!!


Título: Re: Cambiar de color un TextBox al recibir o perder el enfoque - Api GetFocus
Publicado por: BlackZeroX en 3 Febrero 2010, 03:50 am
Si.., pero por lo menos a mi no me gustaría tener un montón de eventos GotFocus y LostFocus si es que usaría muchos TextBox..
y la idea no solo se aplica en TextBox puede ser en otros controles también ;)

SaluDOS!!!

para eso existen los módulos de clase ¬¬", con un poquito de imaginacion me entiendes xP

Sombrías Lunas!¡.
.


Título: Re: Cambiar de color un TextBox al recibir o perder el enfoque - Api GetFocus
Publicado por: SOMBRIO en 3 Febrero 2010, 04:12 am
Esta buena la info   :P pero un intervalo de tiempo tan pequeño de 1 con eso volvemos loca la maquina estria bien un intervalo de 50 o 100 Saludos