Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   problema con un truco!!! (https://www.clubdelphi.com/foros/showthread.php?t=65535)

MARLON1 23-12-2009 02:05:09

problema con un truco!!!
 
hola a todos les explico:

utilice el truco para recibir datos des del purto serial y me funciona correctamente cuando ejecuto la aplicacion desde delphi, pero el problema es cuando ejecuto la aplicacion desde el .exe que genera delphi, mi aplicacion si corre pero no recibe datos, ojala y puedan ayudarme, de antemano muchas gracias.


saludos

Delphius 23-12-2009 02:59:31

¿Cuál truco? ¿Podemos ver lo que tienes hecho?
¡Cómo es posible que te ofrezcamos ayuda si no demuestras realmente lo que hiciste o llevas hecho? ¡No somos adivinos!

Explícate y se más detallista.

Saludos,

MARLON1 23-12-2009 04:35:12

Disculpen
 
bueno el truco ke les cometo es para recibir datos por medio del puerto serial, les dejo el codigo, con este codigo puedo leer y almacenar lo que leo en mi bd, todo corre perfectamente cuando lo ejecuto desde delphi, pero al ejecutarlo desde el .exe no me lee el puerto, gracias. utilizo delphi 10


Código SQL [-]
procedure TForm1.BitBtn2Click(Sender: TObject);
var
puerto,n: integer;
num:byte;
cad: string;
mode: DCB;
com: string;
 
begin
com:= edit1.Text;
label3.Caption:=com;
compa:=true;
puerto:= FileOpen(com,fmOpenRead);
mode.BaudRate:=9600;
mode.ByteSize:=8;
mode.Parity:=NOPARITY;
mode.StopBits:= ONESTOPBIT;
SetCommState(puerto,mode);
   while compa=true do begin
   Application.ProcessMessages;
  repeat
  repeat until FileRead(puerto,num,1)=1;
  until num=13 ;
  cad:= '';
  for n:=1 to 46 do begin
   repeat until FileRead(puerto,num,1)=1;
   cad:= cad + chr(num);
  end;
   //alamcenamieno de datos en la BD
   query1.Close;
   query1.SQL.Clear;
   query1.SQL.Add('insert into datos(medidor,fecha,hora,gasto,tirante,tem)');
   query1.SQL.Add('values(:med,:fec,:ho,:gas,:tir,:te)');
   query1.ParamByName('med').Value:=COPY(cad,1,3);
   query1.ParamByName('fec').Value:=COPY(cad,5,10);
   query1.ParamByName('ho').Value:=COPY(cad,16,5);
   query1.ParamByName('gas').Value:=COPY(cad,22,7);
   query1.ParamByName('tir').Value:=COPY(cad,30,8);
   query1.ParamByName('te').Value:=COPY(cad,39,8);
   query1.ExecSQL;
  memo1.Lines.Add(cad);

    if compa=false then
  break;

   end;

end;

MARLON1 23-12-2009 05:24:16

No se que paso!!
 
hola a todo ps la verdad no se ke haya pasado pero ya funciona correctamente con el codigo ke les puse, de cualkier manera gracias, bueno tengo otra duda, cuando esta corriendo el programa se supone ke deberia permitir dar click en el boton para parar el bucle, pero no me muestra el cursor, nose si este poniendo en un ugar incorrecto el break, gracias. por la ayuda ke me puedan proporcionar.

Neftali [Germán.Estévez] 23-12-2009 08:40:16

Coloca esta línea:

Código Delphi [-]
  Application.ProcessMessages;

dentro de cada blucle.

coso 23-12-2009 10:37:35

Hola,
quiza era porque el cortafuegos permitia actuar a delphi a su antojo, mientras que el programa en si no tenia los permisos. Nada, solo especulando, que ya lo tienes arreglado. Un saludo.


La franja horaria es GMT +2. Ahora son las 12:24:18.

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