Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-06-2011
hugobenitez hugobenitez is offline
Miembro
 
Registrado: oct 2006
Posts: 24
Poder: 0
hugobenitez Va por buen camino
TComPort en otro equipo

Hola marcoszorrilla: te hago una consulta, y de te agradezco de antemano si me puedes ayudar. Hice un programa donde utilizo el componente TComPort, el mismo lo agregue a mi paleta de componentes compilando el DPK y luego la instalacion, hasta ahi todo bien, anda en el programa siempre y cuando tenga delphi instalado. Mi problema empieza cuando le llevo a mi cliente el exe y me da errores como: "Win32 Error. Code 6. Controlador no Valido". Podrias decirme que me falta o que tengo que hacer, entiendo que el componente no llego al EXE, apesar de que desctive la casilla "Build with runtime packages" en Project-Options.

Mil gracias.
Responder Con Cita
  #2  
Antiguo 14-06-2011
Mosis2k2 Mosis2k2 is offline
Miembro
 
Registrado: feb 2007
Posts: 12
Poder: 0
Mosis2k2 cantidad desconocida en este momento
Componente Tcomport uncionando correctamente

Cita:
Empezado por hugobenitez Ver Mensaje
Hola marcoszorrilla: te hago una consulta, y de te agradezco de antemano si me puedes ayudar. Hice un programa donde utilizo el componente TComPort, el mismo lo agregue a mi paleta de componentes compilando el DPK y luego la instalacion, hasta ahi todo bien, anda en el programa siempre y cuando tenga delphi instalado. Mi problema empieza cuando le llevo a mi cliente el exe y me da errores como: "Win32 Error. Code 6. Controlador no Valido". Podrias decirme que me falta o que tengo que hacer, entiendo que el componente no llego al EXE, apesar de que desctive la casilla "Build with runtime packages" en Project-Options.

Mil gracias.
Hola hugobenitez.

Yo tengo un componente TComport, que no estoy seguro de si sera el mismo, pero ese componente lo he usado con WinXP, WinVista, Win7, sin problema alguno, si te interesa, ponte en contacto conmigo: jcmr1976@hotmail.com
Responder Con Cita
  #3  
Antiguo 14-06-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.474
Poder: 21
newtron Va camino a la fama
Hola.

Aquí te envío un ejemplo de la captura del evento "Receivedata" del componente por si te sirve.

Código Delphi [-]

procedure TFormularioVentasTactil.PesoReceiveData(Sender: TObject;
  DataPtr: Pointer; DataSize: Cardinal);
var
  iLastLine, i: integer;
  s, ss: string;
begin
//
  //Convertimos los datos recibidos en una cadena
  s := StringOfChar(' ', DataSize);
  Move(DataPtr^, pchar(s)^, DataSize);

  //Salimos si recibimos el caracter nulo
  while Pos(#0, s) > 0 do
    Delete(s, pos( #0, s ), 1);

  //Comprobamos que la cadena recibida no este vacia o que el valor que esta recibiendo sea '0000000'(que no hay nada en el peso)
  if (s = '') then begin
    Exit;
  end;
  if (Pos('0000000',s) = 1) and (Not Pesamos) then exit;

  if Pos('0000000',s)=1 then
    Pesamos:=False
  else
    Pesamos:=True;

  // Remove line feeds
  i := pos( #10, s );
  while i <> 0 do begin
    delete( s, i, 1 );
    i := pos( #10, s );
  end;

  // Don't redraw the rich edit control until we finished updating it
  //IncomingRichEdit.Lines.BeginUpdate;
  // Get last line index
  iLastLine := NTMemo1.Lines.Count-1;
  // If the rich edit is empty...
  if iLastLine = -1 then begin
    // Remove line feeds from the string
    i := pos( #10, s );
    while i <> 0 do begin
      delete( s, i, 1 );
      i := pos( #10, s );
    end;
    // Remove carriage returns from the string (break lines)
    i := pos( #13, s );
    while i <> 0 do begin
      ss := copy( s, 1, i-1 );
      delete( s, 1, i );
      NTMemo1.Lines.Append( ss );
      i := pos( #13, s );
    end;
    NTMemo1.Lines.Append( s );

  end else begin
    // String to add is : last line added + new one
    s := NTMemo1.Lines[iLastLine] + s;
    // Remove carriage returns (break lines)
    i := pos( #13, s );
    while i <> 0 do begin
      ss := copy( s, 1, i-1 );
      delete( s, 1, i );
      if iLastLine <> -1 then begin
        NTMemo1.Lines[iLastLine] := ss;
        iLastLine := -1;
      end else begin
        //introducimos cantidad en el grid de ventas
        NTMemo1.Lines.Append( ss );
      end;
      if ss<>'0000000' then begin
        MiVenta.CambiaModoEdit(tEntradaDatos);
        NtEditTotal.TomaValor(ss);
      end else begin
        Miventa.CambiaModoEdit(tPresentaTotal);
      end;
      i := pos( #13, s );
    end;

    if iLastLine <> -1 then
      NTMemo1.Lines[iLastLine] := s
    else
      NTMemo1.Lines.Append( s );
  end;

end;

Saludos
Responder Con Cita
  #4  
Antiguo 15-06-2011
hugobenitez hugobenitez is offline
Miembro
 
Registrado: oct 2006
Posts: 24
Poder: 0
hugobenitez Va por buen camino
Solucionado TComPort

Hola Newtron, te agradezco enormemente tu aporte!! te cuento tengo el TComPort 3.0, el tema fue que el puerto que habia programado para la balanza era el COM1 y el puerto en mi cliente era COM3 y claro, al intentar acceder al componente me daba ese error. El tema no termino ahi, despues de haberme dado cuenta de mi gran error, puse a imprimir una TM88IV (epson termica USB), que al enviar el comando de impresion se me colgaba el programa. La solucion fue el sagrado TRY EXCEPT en un evento del TComPort porque al enviar la impresion "no se porque" leia otros numeros que generaban un error en el TComPort. El codigo para arreglarlo fue:

procedure TCustomComPort.DoRxChar(Count: Integer);
begin
try
if Assigned(FOnRxChar) then
FOnRxChar(Self, Count);
except
end;
end;

El TComPort que tengo me lee los datos de la balanza desde este evento, y aqui se generaba el error mas grave.

Espero sirva mi pequeñito aporte. Un Abrazo a ti Newtron y a todos los del club que me ayudaron a aprender un monton de cosas!!!!
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


La franja horaria es GMT +2. Ahora son las 11:18:03.


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