Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-10-2011
Gercondi Gercondi is offline
Miembro
 
Registrado: jun 2010
Posts: 12
Poder: 0
Gercondi Va por buen camino
Question "Problema de Lectura desde un puerto COM"

Saludos,

Estoy teniendo el siguiente problema: Estoy creando una DLL (en Delphi 2010) que incluye un formulario. Ese formulario contiene entre otros un componente COMPORT para leer atravez del puerto COM4 codigos de barras 2D desde un Escaner Honeywell Xenon 1900.

Cuando hago el llamado a la Dll desde otra aplicación realizada en Delphi 2010 hace la lectura del codigo de barra sin problema.

Pero al utilizar la Dll (realizada en Delphi 2010) desde una aplicación desarrrollada en Delphi 2006, aparece el formulario de la Dll, una vez leido el dato tengo que mover el mouse o presionar alguna tecla para que cierre el formulario que genera la DLL y poder utilizar los datos que retorna en otra aplicación.

Alguien tiene idea de que podria estar pasando con la aplicación desarrollada en Delphi 2006 ???
Que debo hacer para que no tenga necesidad de mover el mouse para obtener la información ???

De antemano gracias por la información y el tiempo.
Responder Con Cita
  #2  
Antiguo 07-10-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Habría que ver como está hecha esa dll, en con concreto ese formulario y como se cierra...
No creo que sea problema de delphi 2006.


Saludos.
Responder Con Cita
  #3  
Antiguo 07-10-2011
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: 18.278
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
¿Cual es la característica que cierra el formulario de forma automática?
¿Cómo lo cierras? ¿Cuando ha leído?

Ya se que es descabellado y no parece que tenga relación, pero está está el tema de unicode. Es lo que se me ocurre diferente entra ambos (a primeras)
Lo digo porque no se si trabajas con cadenas o cierras el form al leer. Para eso me falta la contestación a las primeras preguntas.
__________________
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 07-10-2011
Gercondi Gercondi is offline
Miembro
 
Registrado: jun 2010
Posts: 12
Poder: 0
Gercondi Va por buen camino
Codigo que cierra el formulario de la DLL

Eso es lo que ejecuta el formulario de la DLL :

Código Delphi [-]
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
  Str : String;
  Cadena: AnsiString;
  numCad : integer;
  CC : integer;
begin
  Str := '';
  numCad := ComPort1.Buffer.ComPort.InputCount;

  Comport1.Buffer.ComPort.ReadStr(Str,numCad);

  Cadena := DepurarCadena(Str);

  xCedula := trim(copy(Cadena,50,10));
  CC := strtoint(xCedula);

  xCedula := inttostr(CC);
  xPrimerNombre := trim(copy(Cadena,105,10));
  xSegundoNombre := trim(copy(Cadena,128,10));
  xPrimerApellido := trim(copy(Cadena,60,23));
  xSegudoApellido := trim(copy(Cadena,82,23));

  Close;
end;

El evento ComPort1RxChar es que se ejecuta cuando disparamos el lector de codigos de barra.

Hago una correccion al mensaje inicial, la Dll tiene el mismo comportamiento en la aplicación desarrollada en delphi 2010 y 2006. Lo que sucedia era que la aplicación donde estaba haciendo la prueba (D2010) tiene un timer y este disparaba un envento cada 5 milisegundos.
Responder Con Cita
  #5  
Antiguo 07-10-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Si no entiendo mal, Tras el paso por el lector de barras se abre el formulario. Después debería cerrarse pero no lo hace.

No muestras como se abre, si es un formulario autocreado o no, si es modal...
¿Está escrito un evento OnClose?, si es así, ¿Que hace?.
¿Has hecho un debug paso a paso de la dll?.
¿Usas el formulario en un thread a parte?.

Saludos.
Responder Con Cita
  #6  
Antiguo 12-10-2011
Gercondi Gercondi is offline
Miembro
 
Registrado: jun 2010
Posts: 12
Poder: 0
Gercondi Va por buen camino
Thumbs up Lo pude solucionar

Gracias por sus comentarios.
Pude solucionar el inconveniente colocando un timer que cada segundo se encarga de la conversion de unos datos luego de ser capturado por el lector.
Responder Con Cita
Respuesta



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
El programa se queda "colgado" mientras copia y luego "despierta" NeWsP OOP 5 10-03-2010 22:05:40
Error de lectura de puerto serie "Memoria Insuficiente". clavijo83 ASM y Microcontroladores 7 07-04-2009 23:17:28
En que puerto se hace el "ping" JoeyJordison Varios 10 11-02-2009 16:00:10
Particiones en "solo lectura " con cd_live de knoppix Diavlo Linux 1 03-10-2007 04:06:26
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 00:03:53


La franja horaria es GMT +2. Ahora son las 01:18:43.


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