Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 28-02-2008
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 22
FGarcia Va por buen camino
Hola!
Por el nombre del evento supongo que usas el Componente TComPort de la biblioteca CPortLib de Djan Cernilla.
El evento RxChar te permite capturar todo lo que entre por el puerto serie caracter a caracter por lo que tu tendrias que evaluar cuantos caracteres crees que vas a recibir o si esperas un caracter en especial interceptarlo y ejecutar un procedimiento o funcion.

Código Delphi [-]
procedure TMiForm.ComPortRxChar(Sender: TObject; Count: Integer);
var
  Cadena: string;
begin
  Cadena := '';
  {AQUI EL COMPONENTE LEE LO QUE RECIBE POR EL PUERTO COM}
  ComPort.ReadStr(Str, Count);
  
  {Aqui copiamos lo capturado.}
  
  //POR EJEMPLO EN UNA VARIABLE
  Cadena := Cadena + Str;
  
  //POR EJEMPLO EN UN MEMO
  Memo.Text := Memo.Text + Str;  }
end;

Sin embargo si conoces las caracteristicas de lo que vas a capturar, por ejemplo su longitud o un caracter terminador en especial es mejor usar el componente ComDataPacket el cual te permite capturar datos que entran como paquetes de longitud fija o limitados por un caracter de inicio y final. por ejemplo:

Cita:
LONGITUD FIJA:

+ 12.3 //9 CARACTERES
CLUB DELPHI //11 CARACTERES

LIMITADOS POR UNO O DOS CARACTERES

- 12.3<CR> //LIMITADO POR EL CARACTER ASCII CR (Carriage Return)
<STX>- 12.3<ETX> //LIMITADO POR CARACTER DE INICIO Y FINAL ASCII STX (Start of Transmition) y ETX (End OF Transmition)
Ambos RxChar y ComDataPacket son excluyentes, es decir que usas uno u otro pero no ambos.
En el ComDataPacket si usas una longitud de cadena fija y usas un caracter limitador final lo que ocurra primero determinara la ejecucion del mismo. Por ejemplo:

Cita:
- 12.3KGM<CR> //LIMITADO POR EL CARACTER ASCII CR (Carriage Return)

ComDataPacket.Length := 8;
ComDataPacket.StopString := #10;
Aqui el evento OnPacket se dispara cuando llegan los primeros 8 caracteres por lo que si te interesaba los otros 3 esos no se capturan.
Espero te sirvan estos comentarios para tus desarrollos.
Responder Con Cita
 



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
Comentario "aplastante" contra los que atacan la "piratería" Casimiro Noteví La Taberna 12 07-03-2010 14:03:02
Necesito llamar a métodos de clases "hija" desde su clase "padre" Flecha OOP 17 20-04-2007 00:03:53
"atrapar" la ejecución de un procedimiento jorgesl Varios 2 17-04-2006 19:39:10
porque no me reconoce los caracteres "*" ni "%" cuando filtro mrmago Conexión con bases de datos 10 27-01-2006 04:21:16
"no current record for fetch operation" con procedimiento almacenado usado en Select Al González Firebird e Interbase 1 17-03-2004 21:13:17


La franja horaria es GMT +2. Ahora son las 09:29:03.


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