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 11-08-2020
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
Apertura de cajón con Delphi Berlín

Hola a tod@s.


He pasado una aplicación de Delphi 2007 a Delphi Berlín y me encuentro con el problema de que no me funciona la apertura del cajón. El caso es que el mismo código que funciona con 2007 no funciona con Berlín y es el siguiente:


Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);

  function CreaLinea: String;
  var
    sAux: String;
  begin

    Result := '';

    sAux := '27 112 0 20 200';
    while Pos(' ', sAux) > 0 do begin

      try
        Result := Result + Chr(StrToInt(Copy(sAux, 1, Pos(' ', sAux)-1)));
      except

      end;

      sAux := TrimLeft(Copy(sAux, Pos(' ', sAux)+1, Length(sAux)));

    end;

    try
      Result := Result + Chr(StrToInt(sAux));
    except

    end;

  end;

var
  DocInfo1: TDocInfo1;
  Handle:   THandle;
  Linea:    String;
  N:        DWORD;
begin
  if not OpenPrinter(PChar('PRP-300'), Handle, nil) then begin
    ShowMessage('Error en OpenPrinter : ');
    Exit;
  end;

  with DocInfo1 do begin
    pDocName    := PChar('CAJON');
    pOutputFile := nil;
    pDataType   := 'RAW';
  end;

  StartDocPrinter(Handle, 1, @DocInfo1);

  StartPagePrinter(Handle);

  Linea := CreaLinea;
  WritePrinter(Handle, PChar(Linea), Length(Linea), N);

  EndPagePrinter(Handle);

  EndDocPrinter(Handle);

  ClosePrinter(Handle);

end;


Imagino que será algo del juego de caracteres Ansi/UTF o algo así pero la verdad es que no doy con la tecla.


Gracias y un saludo
__________________
Be water my friend.
Responder Con Cita
  #2  
Antiguo 11-08-2020
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Tiene toda la pinta de ser lo que dices.

Puedes solucionarlo usando ANSISTRING o SHORTSTRING en lugar de STRING, PANSICHAR en lugar de PCHAR y en vez de CHR usa ANSICHAR.

También deberás incluir la unidad AnsiStrings en vez SysUtils. Ojo, si es imperativo usar SysUtils entonces deberás prefijar las llamadas para evitar ambigüedades.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine

Última edición por Ñuño Martínez fecha: 11-08-2020 a las 13:45:52.
Responder Con Cita
  #3  
Antiguo 11-08-2020
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
Buenas compañero.


He cambiado la declaración de la variable "linea" por AnsiString y va perfectamente.


Gracias y un saludo.
__________________
Be water my friend.
Responder Con Cita
  #4  
Antiguo 12-08-2020
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Para eso estamos.

Yo me estuve pegando con un problema parecido con Allegro.pas, y aprendí bastante sobre cómo gestionan las cadenas de caracteres C, Free Pascal y Delphi, así que ahora soy casi un experto.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #5  
Antiguo 12-08-2020
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
Cita:
Empezado por Ñuño Martínez Ver Mensaje
Para eso estamos.

Yo me estuve pegando con un problema parecido con Allegro.pas, y aprendí bastante sobre cómo gestionan las cadenas de caracteres C, Free Pascal y Delphi, así que ahora soy casi un experto.

Estupendo, me encanta tener amigotes expertos.
__________________
Be water my friend.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Enviar a OKIPOS 410 cadena de apertura de cajon. I/Oerror, el archivo (LPT1)no existe maiquemasque Impresión 3 04-04-2011 15:04:00
Problemas Apertura Cajon Fastreport+epson tm-t88iv hibero Impresión 3 09-04-2010 03:10:08
Acelerar apertura de consulta desde Delphi contra Access Sergiov SQL 4 13-04-2007 10:42:59
MSProject (Apertura de un proyecto desde Delphi)!!! DB-ADO Conexión con bases de datos 3 03-03-2005 10:03:35


La franja horaria es GMT +2. Ahora son las 03:54:51.


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