Tema: ActiveX
Ver Mensaje Individual
  #3  
Antiguo 27-04-2006
FerCastro FerCastro is offline
Miembro
 
Registrado: abr 2006
Posts: 97
Reputación: 19
FerCastro Va por buen camino
Arrow

Hola, agradezco mucho tu respuesta

Te adjunto un poco de código y trato de explicar.




Agradezco infinitamente la ayuda del foro y cualquier tip.

Fernando Castro
México, D.F.


procedure TFrmPrincipal.SpeedButton1Click(Sender: TObject);
VAR
nTotalReg : INTEGER;
nCiclo : INTEGER;
nID : INTEGER;
nIDTrab : INTEGER;
nVal1 : INTEGER;
nVal2 : INTEGER;
dFecha : TDateTime;
cTipo : STRING;
lRetorno : Boolean;
iBFLEX : TBFlex; // esta es la variable ActiveX

begin


iBFlex := TBFlex.Create(SpeedButton1);
lRetorno := iBFlex.OpenCom('COM1',19200);

IF not lRetorno then
begin;
MessageDlg( 'No se ha podido conectar con la lectora' , mtWarning, [mbOK], 0);
iBFlex.Destroy;
exit;
end;

iBFlex.Test(1);


// cuando llamo a este procedimiento sucede algo raro, depuès de compilar
// y obtener datos correctos, el programa dejó de regresarme los
// datos que debería regresarme, es decir, la variable nTotalReg regresó
// algunas veces con el valor de 10 y ahora simplemente regresa con cero,
// cuando debería tener 14
nTotalReg := iBFlex.ReadAllGLogData(1, &nID);

IF nTotalReg = 0 THEN
Begin
MessageDlg( 'La lectora seleccionada no tiene registros grabados' , mtWarning, [mbOK], 0);
iBFlex.CloseCom();
exit;
end;

MessageDlg(IntToStr(nTotalReg) , mtWarning, [mbOK], 0);

FOR nCiclo := 1 TO nTotalreg DO
BEGIN


// igual aqui, dFecha y nVal1 no cambian, y son valores que pasan por
// referencia
lRetorno := iBFlex.GetGeneralLogData(1,nCiclo, &nIDTrab, &dFecha, &nVal1, &nVal2);

IF nVal1 = 1 THEN
cTipo := 'Entrada'
else
cTipo := 'Salida';



MessageDlg('ID: ' + IntToStr(nID) + ';Fecha: ' + DateTimeToStr(dFecha) + ';Tipo: ' + cTipo , mtWarning, [mbOK], 0);


END;
Responder Con Cita