Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-02-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.015
Poder: 22
oscarac Va por buen camino
mis conocimientos en delphi son limitados
podrias darme un ejemplo por favor?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #2  
Antiguo 25-02-2019
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.449
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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.
Responder Con Cita
  #3  
Antiguo 25-02-2019
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.449
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Si no necesitas crear el componente y quieres utilizarlo por código, basta con que pruebes con un código como este:


Código Delphi [-]
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    // Procedimiento para capturar el evento (del mismo tipo que el evento)

    procedure VerifyProc (ASender: TObject; UserID: Integer);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses
  zkemkeeper_TLB;      // Añadir la USES del componente

procedure TForm1.VerifyProc(ASender: TObject; UserID: Integer);
begin
  // Procedimiento de verificación
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  comp:TCZKEM;
begin
  // Crear el componente
  comp := TCZKEM.Create(nil);
  // Capturar el evento y asignarle un procedimiento

  comp.OnVerify := VerifyProc;
  // Llamar al método PowerOnAllDevice
  comp.PowerOnAllDevice;
  ...

end;

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.
Responder Con Cita
  #4  
Antiguo 25-02-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.015
Poder: 22
oscarac Va por buen camino
Ya estoy entendiendo, corrigeme si es que me equivoco
Código Delphi [-]
procedure VerifyProc (ASender: TObject; UserID: Integer);

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.....
Responder Con Cita
  #5  
Antiguo 25-02-2019
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.449
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
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:

Código Delphi [-]
  property OnFinger: TNotifyEvent read FOnFinger write FOnFinger;

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:

Código Delphi [-]
  TCZKEMOnVerify = procedure(ASender: TObject; UserID: Integer) of object;

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:

Código Delphi [-]
  TNotifyEvent = procedure(Sender: TObject) of object;

4) Creamos un procedimiento para asifgnarlo al evento del mismo tipo (con los mismos parámetros):

Código Delphi [-]
  procedure FingerProc(Sender: TObject);

5) Asignamos el procedimiento creado al evento del componente...
Código Delphi [-]
var   
  comp:TCZKEM; 
begin   
  // Crear el componente   
  comp := TCZKEM.Create(nil);   
  // Capturar el evento y asignarle un procedimiento   
  comp.OnVerify := VerifyProc;
  // Capturar el evento OnFinger
  comp.OnFinger := FingerProc;          <<=================

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.
Responder Con Cita
  #6  
Antiguo 25-02-2019
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.449
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por oscarac Ver Mensaje
Como hacer para "interceptar" ese metodo, es decir, en que momento se ejecutara "verifyProc"

Visualmente es cuando programas en evento, si lo haces como en el código anterior es con esta l´ñinea:


Código Delphi [-]
  comp.OnVerify := VerifyProc;


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.
Responder Con Cita
  #7  
Antiguo 25-02-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.015
Poder: 22
oscarac Va por buen camino
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.....
Responder Con Cita
  #8  
Antiguo 25-02-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.015
Poder: 22
oscarac Va por buen camino
Estuve avanzando un poco mas de acuerdo a lo que me enseñaste

Código Delphi [-]
unit FrmMain_f;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Grids, Vcl.DBGrids, zkemkeeper_TLB, dateutils;

type
  TForm1 = class(TForm)
    edtIp: TEdit;
    edtPort: TEdit;
    btnDispositivoLoad: TButton;
    dbgrd1: TDBGrid;
    mmoLOG: TMemo;
    lbl1: TLabel;
    procedure btnDispositivoLoadClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    Procedure LeerHuella;

    { Private declarations }
  public
      ZK1 : TCZKEM;
      procedure Log(aMsj : string);
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnDispositivoLoadClick(Sender: TObject);
begin
  if not(ZK1.Connect_Net(EdtIP.Text, StrToInt(EdtPort.Text))) then
    begin
      lbl1.Caption := 'Error. No se pudo conectar';
      exit;
    end;
    if not ZK1.RegEvent(1, 65535) then  //65535
      lbl1.Caption := 'Error RegEvent';

end;

procedure TForm1.FormCreate(Sender: TObject);
Var Huella : TCZKEM;
begin
  Huella := TCZKEM.Create(nil);  // creo el componente
  Huella.OnFinger := LeerHuella;
end;

procedure TForm1.LeerHuella;
begin
 //
end;

procedure TForm1.Log(aMsj: string);
begin
  MmoLOG.Lines.Add(aMsj);
end;

end.

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

Código Delphi [-]
    procedure OnFinger; dispid 8;

entonces no entiendo el porque del mensaje de error con parametros
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 03:40:24.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi