FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Interceptar Eventos Externos
buenas noches
estoy trabajando con una libreria externa "zkemkeeper_TLB" que fue generada al registrar "zkemkeeper.dll" la pregunta del millon es Como accedo a los eventos de esta libreria? como los "intercepto" en tiempo de ejecucion? la idea principal es que cuando coloque la huella en el dispositivo (zkteco k40) dispare los aventos de esta libreria no tengo la menor idea de como hacerlo alguien me da una mano? gracias
__________________
Dulce Regalo que Satanas manda para mi..... Última edición por oscarac fecha: 25-02-2019 a las 05:57:35. |
#2
|
||||
|
||||
Parece que la librería te genera esta clase, para encapsular el comportamiento del dispositivo TCZKEM = class(TOleControl).
Crea una instancia/componente sea de forma visual o en ejecución. A partir de ahí, ya tienes en esa clase disponibles los eventos necesarios (o eso parece para interactuar con el dispositivo):
Si la nomenclatura no es mala, yo apostaría a que los eventos OnEnrollFinger, OnFinger, OnFingerFeature, OnEnrollFingerEx tienen que ver con la detección de un dedo en el lector. Si has usado un componente los eventos se programan como en el resto. Si lo has creado en ejecución puedes buscar en los foros sobre "crear componentes en ejecución" y encontrarás muchos ejemplos de cómo crearlos e interceptar los eventos. Manejo de Componentes en Tiempo de ejecución Asignar un evento a un componente creado en tiempo de ejecucion Asignar a tbitbtn evento en tiempo de ejecucion
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. Última edición por Neftali [Germán.Estévez] fecha: 25-02-2019 a las 15:17:25. |
#3
|
||||
|
||||
mis conocimientos en delphi son limitados
podrias darme un ejemplo por favor?
__________________
Dulce Regalo que Satanas manda para mi..... |
#4
|
||||
|
||||
Para generar el nuevo componente haz lo siguiente:
1) File / New /Other y selecciona Package 2) Te creará un nuevo package vacío, que es lo que necesitamos para instalar el componente. 3) Sobre el package click derecho y añade la unit que te ha generado. 4) Compila, guarda e instala el package. Te saldrán algunos avisos, aceptalos. 5) Si todo ha ido bien, te saldrá un mensaje similar a este: 6) Si ahora vas a un formulario, deberías ver el nuevo componente registrado, TCZKEM. Puedes arrastrarlo sobre el formulario y trabajar con él como otro normal.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
||||
|
||||
Si no necesitas crear el componente y quieres utilizarlo por código, basta con que pruebes con un código como este:
Aquí ves cómo se crear el componente, como se captura un evento y cómo se llama a un método. Si revisas la documentación que tengas de él, debería estar explicado para qué sirve cada cosa.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#6
|
||||
|
||||
Ya estoy entendiendo, corrigeme si es que me equivoco
VerifyProc es el procedimiento que se ejecutara cuando se active el metodo que yo desee ejecutar (ya sea OnFinger, OnAttTransactionx, etc etc) la pregunta ahora es... Como hacer para "interceptar" ese metodo, es decir, en que momento se ejecutara "verifyProc"
__________________
Dulce Regalo que Satanas manda para mi..... |
#7
|
||||
|
||||
El orden para entenderlo y generarlo es el siguiente (lo hacemos con otro evento, por ejemplo, OnFinger):
1) El componente tiene un evento OnFinger, que queremos capturar. 2) En la unit generada buscamos la definición del evento:
3) Vemos que el evento es del tipo TNotifyEvent y buscamos este tipo. Este tipo es estandard de Delphi, pero podría estar definido es la misma unit, como el caso anterior de TCZKEMOnVerify. El caso TCZKEMOnVerify está definido en la misma uniot como:
El TNotifyEvent es estandard de Delphi, como te he comentado y si lo buscas en el código o en la ayuda es del tipo:
4) Creamos un procedimiento para asifgnarlo al evento del mismo tipo (con los mismos parámetros):
5) Asignamos el procedimiento creado al evento del componente...
Y con eso conseguimos que cada vez que en el componente "salte" el evento OnFinger, se ejecute nuestro procedimiento FingerProc.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#8
|
||||
|
||||
Cita:
Visualmente es cuando programas en evento, si lo haces como en el código anterior es con esta l´ñinea:
Le estás diciendo que cuando "salte" ele evento OnVerify, ejecute el procedimiento VerifyProc.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#9
|
||||
|
||||
Entendido
lo voy a probar mas tarde pero sigo con la duda de como sabe el programa que el usuario puso el dedo en el huellero, se que los eventos que se van a disparar estan en la libreria, pero como dije... como sabe que puse el dedo en el lector????
__________________
Dulce Regalo que Satanas manda para mi..... |
#10
|
||||
|
||||
Estuve avanzando un poco mas de acuerdo a lo que me enseñaste
pero al compilar me aparece un error [dcc32 Error] FrmMain_f.pas(143): E2009 Incompatible types: 'Parameter lists differ' si voy al archivo zkemkeeper_TLB y busco OnFinger, su declaracion esta asi
entonces no entiendo el porque del mensaje de error con parametros
__________________
Dulce Regalo que Satanas manda para mi..... |
#12
|
||||
|
||||
Logre hacer que cuando se coloca el dedo en el huellero se dispare un evento
el tema es que entra 2 veces al evento alguien sabe porque?
__________________
Dulce Regalo que Satanas manda para mi..... |
#13
|
||||
|
||||
Cita:
El OnFinger, aparece más de una vez, pero siempre tienes que ir a lo que hay definido dentro de la clase: En ese caso es:
Por eso el procedimiento: Ya si tiene la cabecera correcta.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#14
|
||||
|
||||
Cita:
En esto ya tendrás que ver la documentación del componente. Ahí te debería explicar para qué es cada método, cuando se lanzan y porqué. Yo lo que haría es este caso, es primero capturar varios eventos (los que te parezcan más significativos) y realizar un Log en pantalla para ver cómo se van disparando. De esa forma te harás una idea de cómo van saliendo. Por ejemplo optaría por: OnConnected, OnDisConnected, OnFinger, OnVerify, OnGeneralEvent. Un log de cada uno de ellos y de los parámetros. También buscaría información de la propiedad PullMode, que por el nombre, puede ser que afecte à la forma de leer las huellas (tal vez). Pero como te digo, todo esto debería estar en la documentación/ejemplos suministrados por el fabricante.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#15
|
||||
|
||||
hay un evento el cual me interesa
Se llama OnAttTransatacion uno de sus parametros me devuelve "el codigo" asignado a la huella digital (previamwnte grabada en el huellero) no tengo idea de como acceder a ese metodo me das una mano?
__________________
Dulce Regalo que Satanas manda para mi..... |
#16
|
||||
|
||||
¿Has definido el método para capturar el evento?? ¿Has hecho el Log de los parámetros? A ver qué valores llegan en el evento.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#17
|
||||
|
||||
si he definido el metodo para capturar el evento
pero no se como llamarlo (invocarlo) sigo el mismo procedimiento que el ejemplo que pusiste en ese post pero me suelta muchos errores no se por donde empezar
__________________
Dulce Regalo que Satanas manda para mi..... |
#18
|
||||
|
||||
__________________
Dulce Regalo que Satanas manda para mi..... |
#19
|
||||
|
||||
vayamos por partes a ver si estoy entendiendo bien
es el procedimiento que se ejecutara cuando ponga el dedo en el huellero
cargo el "componente", lo conecto y le digo cuando se dispare el evento Onfinger (que es colocar el dedo en el huellero) ejecuta el procedimiento Leer huella hasta ahi estamos bien si?
__________________
Dulce Regalo que Satanas manda para mi..... |
#20
|
||||
|
||||
Cita:
Yo hasta aquí lo veo bien. Crear el componente, le assignas los eventos OnFinger y OnConnect (el OnDisconnect no). Y luego haces el Connect_Net. A partir de ahí si llegas al punto en que está conectado (suponiendo que no haya que llamar algún método más para inicializar) deberían empezar a llegarte eventos cuando pongas el dedo. Cada vez que se ejecute el evento en el dispositivo (OnFinger), a tu programa llegará el control al procedimniento LeerHuella. ¿Es correcto?
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Interceptar DBEdit | ecfisa | OOP | 3 | 01-07-2008 11:57:34 |
Interceptar post.... | brandolin | Varios | 1 | 29-08-2007 15:23:47 |
Interceptar impresión | Walcasar | Impresión | 0 | 19-10-2006 15:22:20 |
Interceptar DBNavigator | dape | Conexión con bases de datos | 1 | 09-04-2005 18:36:16 |
interceptar error | edfz | Conexión con bases de datos | 2 | 08-04-2004 01:12:28 |
|