Ver Mensaje Individual
  #4  
Antiguo 29-08-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.738
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
No he entendido bien tu pregunta, pero creo que lo que puede estar pasando es que no se espera suficiente tiempo para que el puerto COM responda.
Tu le envías un caracter 'P'. Luego tienes que darle unos momentos para que la báscula reciba la petición, genere la respuesta, te la envíe y luego tu la recibas.
En este caso, yo probaría poniendo una pausa entre el envio de 'P' y la recepción;
Código Delphi [-]
procedure TFMov.CoolBtn_PesoClick(Sender: TObject);
Var
  I, G, L,iRenglonTerminal : Integer;
  sValRen, sCaracter, sPeso : String;
  BucleEspera : Integer;
begin
...
  {Envia 'P' a la báscula}
  ApdComport1.Output := 'P';
  I:=sGridMovtos.RowCount-1;
  iRenglonTerminal := 1;
  sValRen := AdTerminal1.Line[iRenglonTerminal];

  {Se llama a ProcessMessages unas cuantas veces, emulando una espera}
  for BucleEspera := 1 to 10 do
      Application.ProcessMessages;

  {Ahora se supone que el mensaje ya ha llegado}
  CoolLabel20.Caption := Trim(AdTerminal1.Line[0]);

    Application.ProcessMessages;

    If CoolLabel20.Caption <> '' Then
...

Prueba con diferentes valores en el bucle de espera...
Responder Con Cita