Autor Tema: Procedimiento para automatizar eventos  (Leído 5650 veces)

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

pedroesca

  • Megabyte
  • ***
  • Mensajes: 206
  • Reputación: +19/-0
  • "El conocimiento es libre"
    • Ver Perfil
Procedimiento para automatizar eventos
« en: Junio 30, 2011, 09:29:27 am »
Buenos días! necesitaría saber si es factible (posible, viable, etc.), generar un procedimiento, rutina y/o función que "recorra" los eventos de un determinado control, y al dispararse dicho evento, se ejecute dicha rutina. Por ejemplo (porque ni yo entendí lo que escribí arriba), quiero efectuar determinada tarea al producirse el "Got_Focus" de los textbox's de cierto formulario, es decir, para no tener que escribir las líneas en cada gotfocus de cada textbox. Se entiende??? espero que si. Saludos.
"Si yo tengo una idea, tú otra, y la compartimos, ambos tendremos DOS ideas"

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Procedimiento para automatizar eventos
« Respuesta #1 en: Junio 30, 2011, 11:31:28 am »
Mm... puedes subclasearlo (que seria medio largo xD) y cuando recibas WM_SETFOCUS ahi ejecutas, pero eso si, no estan TODOS los eventos con el mismo nombre :P

O sino puedes crear array de controles :D que puede ser mas facil y achica el codigo

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Procedimiento para automatizar eventos
« Respuesta #2 en: Junio 30, 2011, 11:36:09 am »
En ese caso, estas asumiendo que tendras el mismo procedimiento en cada control, por ejemplo las acciones que realices en el Gotfocus de cada textbox seran las mismas en todos los textbos. En ese caso:
Opcion 1: Has una matriz de controles, incluso aqui puedes usar condicionales para ciertas variaciones de la funcion.
Opcion 2: Haste un control de usuario donde las acciones del Gotfocus ya se estuvieran realizando, esta forma me gusta mas porque puedes reutilizar el control en otros proyectos.

Me encuentras en YAcosta.com

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Procedimiento para automatizar eventos
« Respuesta #3 en: Junio 30, 2011, 11:55:43 am »
Y falto la manera mas sucia (?), en cada TextBox_GotFocus llamas a un sub xD

pedroesca

  • Megabyte
  • ***
  • Mensajes: 206
  • Reputación: +19/-0
  • "El conocimiento es libre"
    • Ver Perfil
Re:Procedimiento para automatizar eventos
« Respuesta #4 en: Junio 30, 2011, 12:32:36 pm »
Gracias a todos ! y si, coincido totalmente con YAcosta, llegué a esa misma conclusión, es mas ya estoy finalizando el "Mini" usercontrol, creo es lo mas acertado para no hacer el "trabajo sucio", pues me he cansado de ello (varios años haciendo eso :( )
"Si yo tengo una idea, tú otra, y la compartimos, ambos tendremos DOS ideas"

_katze_

  • Bytes
  • *
  • Mensajes: 49
  • Reputación: +2/-0
    • Ver Perfil
Re:Procedimiento para automatizar eventos
« Respuesta #5 en: Junio 30, 2011, 01:07:12 pm »
lo q podrias hacer o x lo menos en .net lo ago asi es crear el evento got focus y ago un addhandler de dicho evento creado donde dentro esta lo q necesito .... recorro los textbox y les agrego a todo

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Procedimiento para automatizar eventos
« Respuesta #6 en: Junio 30, 2011, 11:27:46 pm »
en .NET no hace falta addhandler para hacer eso, podes crear una funcion a la cual le podes poner que accedan varios controles a la vez. algo asi:

Código: [Seleccionar]
    Private Sub ColorFocoTextbox(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtID.LostFocus, txtNombre.LostFocus, txtCarpetaEntrada.LostFocus, txtCarpetaSalida.LostFocus, txtCadena.LostFocus
        sender.BackColor = Color.White
    End Sub

este ejemplo pone el backcolor en blanco cuando todos esos controles ejecutan el evento LostFocus, creo que la mejor solucion y mas simple en VB6, es una matrix de controles, como ya te dijeron.

saludos.

_katze_

  • Bytes
  • *
  • Mensajes: 49
  • Reputación: +2/-0
    • Ver Perfil
Re:Procedimiento para automatizar eventos
« Respuesta #7 en: Junio 30, 2011, 11:43:26 pm »
si seba tienes razon pero es viable las dos aunq la q pusiste es mas simple y da lo mismo ! gracias por el aporte

cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Re:Procedimiento para automatizar eventos
« Respuesta #8 en: Julio 01, 2011, 07:34:14 am »
La manera mas simple es poner un HOOK e interceptar el cambio de foco globalmente y desde ahi ver que clase de control es y proceder. Arme un ejemplo que hacia justamente lo que piden pero lamentablemente no esta en mi pagina y no se si lo puse en algun lado... me parece que se lo di a Ivo ... buenla cuestion es que no tengo ni VB6 en este momento pero esa opcion son 20 lineas maximo.

pedroesca

  • Megabyte
  • ***
  • Mensajes: 206
  • Reputación: +19/-0
  • "El conocimiento es libre"
    • Ver Perfil
Re:Procedimiento para automatizar eventos
« Respuesta #9 en: Julio 01, 2011, 12:02:48 pm »
Gracias Cobein, pero no tengo fucking idea de como hacer un Hook, por el momento lo resolví  con un user control.
"Si yo tengo una idea, tú otra, y la compartimos, ambos tendremos DOS ideas"