Programación General > Visual Basic 6.0 e inferiores

 Ayuda Con Funcion

<< < (2/2)

cpmario:
Tienes un problema...
La rutina que mostraste:

--- Código: Text ---Function ChangeColor()    Dim ctl As Control    For Each ctl In Me        If ctl.ControlType = acTextBox Then            ctl.BackColor = vbWhite        End If    Next ctl    Me.ActiveControl.BackColor = vbYellowEnd Function 
Es correcta en principio, solo que el problema es de donde la vas a llamar, por ejemplo si la llamas desde un control que no sea de texto, ese control tomará el foco y será el activo de esa forma y te marcará el error "Run-Time error '438': El objeto no soporta la propiedad o metodo."
Así que mi sugerencia sigue en pie, aunque tengas que colocar el código en los 15 cuadros de texto.

 :whistling:

Soultaker:
Prueba con esto

--- Código: Text ---Function ChangeColor()   Dim ctl As Control   For Each ctl In Me.Controls      If TypeOf ctl Is TextBox Then         ctl.BackColor = vbWhite      End If   Next ctl   Me.ActiveControl.BackColor = vbYellowEnd Function 
 :comp:

m@gnus:
Thanks Soultaker una excelente solucion con el typeof............


 :lol:  :lol:  :lol:


!!!!!!!Saludos

DiabloRojo:
Bueno, por algo dicen que todos los caminos conducen a Roma. Aquí otra solución pero usando un timer (creo, a la vista del código enviado por Soultaker, me compliqué la vida :nosweat:). Lo dicho, usé un timer con la propiedad interval en 100 y usé este código:


--- Código: Text --- Private Sub Timer1_Timer()    Dim ctrl As Control        If TypeOf Form1.ActiveControl Is TextBox Then       For Each ctrl In Form1.Controls          If TypeOf ctrl Is TextBox Then             If Form1.ActiveControl.Name = ctrl.Name Then                ctrl.BackColor = vbBlue             Else                ctrl.BackColor = vbWhite             End If          End If       Next    Else       For Each ctrl In Form1.Controls          If TypeOf ctrl Is TextBox Then             ctrl.BackColor = vbWhite          End If       Next    End IfEnd Sub  
Es que no me podía quedar sin mandarlo :rolleyes: Jejejeje...


Saludos


DiabloRojo

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa