Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Problema con recepcion de datos con comport (https://www.clubdelphi.com/foros/showthread.php?t=76463)

Choclito 02-11-2011 21:31:39

Problema con recepcion de datos con comport
 
Buenas amigos del foro
Trabajo con delphi 7 y firebird 2.1, comentarles lo que pasa
Tengo un amigo que tiene una placa parallax y el lo configuro para que presionando un boton muestre el mensaje:
Consultorio A
Ahora bien yo en delphi con la ayuda del foro me baje el componente comport y quiero leer el mensaje, el codigo que tengo es el siguiente;
Código Delphi [-]

procedure TF_Principal.ComPortRxChar(Sender: TObject; Count: Integer);
var
  Str: String;
begin
  ComPort.ReadStr(Str, count);
  edit1.Text:=edit1.Text+ Str;
end;
El problema es que en el edit1.text me muestra:
Consultorio A|
al finalizar una linea rara
La consulta es la siguiente:
Como puedo hacer para que me muestre sin esa linea al finalizar?
Que tengo que cambiar para que cada que lee del puerto com se limpie el edit1, probe con
Código Delphi [-]

procedure TF_Principal.ComPortRxChar(Sender: TObject; Count: Integer);
 var
   Str: String;
 begin
 edit1.text:='';  
ComPort.ReadStr(Str, count);
   edit1.Text:=edit1.Text+ Str;
 end;
pero no muestra nada
La cuestion es que con el dato leido quiero realizar acciones para mostrar datos en un grid, pero la verdad nose en que evento del edit hacer que con el dato leido realice acciones
Gracias por sus aportes que puedan realizar

ecfisa 02-11-2011 23:58:09

Hola Choclito.

No he usado comport por lo que hice una búsqueda sobre el tema: comport.

Pero al ver que me arrojo como resultado 113 hilos relacionados, decidí dejarte la tarea de investigarlos... ;) :)

Un saludo.

Neftali [Germán.Estévez] 03-11-2011 11:05:42

Creo que a opción más sencilla es que elimines ese carácter sobrante, una vez que recoges la información.
En lugar de leer directamente sobre el Edit, lee sobre una variable de tipo String, y luego pasa el texto al Edit, eliminando el último carácter (para eso puedes usar la función Copy).

Choclito 03-11-2011 14:02:25

Gracias neftali
 
Muchas gracias por el mensaje, no habia pensando en eso, hago los cambios y ahi les comento.
MI consulta es como actualizar la variable o el memo o edit para que en cada que lea los datos se actualice, al momento de lecturar me muestra lo siguiente:
Consultorio A|
y si vuelvo a lecturar me muestra:
Consultorio A|Consultorio A y asi va incrementando
No se donde colocar codigo para que lea datos y solo muestre
Consultorio A cada que leo
hice este cambio;
Código Delphi [-]
procedure TF_Principal.ComPortRxChar(Sender: TObject; Count: Integer);
var

  cadena,Str: String;
begin
edit1.text:='';
  ComPort.ReadStr(Str, count);
  edit1.Text:=edit1.Text+ Str;

end;
pero no hace que por mas que presione mas de dos veces solo me me muestre Consultorio A
Estare atento a sus comentarios amigos del foro

Neftali [Germán.Estévez] 03-11-2011 15:14:36

Pues posiblemente puedes utilizar el carácter que te está "molestando" para eso, si es que no está definido expresamente para ello. ;-)

(1) Limpias el control Edit y comienzas a leer.
(2) Se trata de leer caracteres hasta que te llegue el "|";
(3) En ese momento acabas la lectura; Quitas el carácter y te quedas con el resto.

Cuando te vuelvan a pulsar, vuelves al paso 1.


La franja horaria es GMT +2. Ahora son las 23:15:15.

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