Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Imprimir caracteres de control (https://www.clubdelphi.com/foros/showthread.php?t=65307)

manuweb 04-12-2009 16:49:12

Imprimir caracteres de control
 
Hola forer@s.

Tengo un programa TPV (en PHP) que imprime sin problema en la impresora de tikets. Para la apertura de cajón (conectado a COM1) usaba un ejecutable escrito en Delphi en el que escribía directamente al puerto usando :


Código Delphi [-]
Cadena:String;
 
//
 
Cadena := #27#112#0#60#240#13#10; // los codigos del cajón



Ahora lo necesito para un cajón conectado directamente a la impresora y quería hacerlo similar, pero con un valor almacenado en un ini (para poder cambiar si cambia el modelo de impresora):


Código Delphi [-]
Cadena:String;
 
//
Cadena := MiFichero.ReadString ('Cajon','Apertura','desconocida');

No consigo que abra el cajón, escribe directamente el valor puesto en el ini.

Código Delphi [-]
Cadena := #10; // funciona, avanza linea en blanco
Cadena := '#10';// NO FUNCIONA, imprime #10
Es como si en lugar de imprimir lo que quiero el lo almacena entre comillado.

¿Como debo definir la variable Cadena para que funcione? ya que:



Gracias

rgstuamigo 04-12-2009 23:11:00

Pues asi:;)
Código Delphi [-]
Cadena := #27#112#0#60#240#13#10;
O tambien su equivalente en ASCII;)
Saludos...:)

manuweb 05-12-2009 09:43:57

Gracias pero:

Código Delphi [-]
Cadena := #27#112#0#60#240#13#10;

no da el mismo resultado que esto:

Código Delphi [-]
Cadena := '#27#112#0#60#240#13#10';

La única solución que veo por el momento es crear un ejecutable por cada tipo de cajón. Ya que no puedo leer Cadena ni desde un ini ni desde una Base de datos ni desde ningún sitio.

Gracias igualmente.

rgstuamigo 05-12-2009 15:47:08

Cita:

Empezado por manuweb (Mensaje 348225)
Gracias pero:

Código Delphi [-]Cadena := #27#112#0#60#240#13#10;


no da el mismo resultado que esto:

Código Delphi [-]Cadena := '#27#112#0#60#240#13#10';


La única solución que veo por el momento es crear un ejecutable por cada tipo de cajón. Ya que no puedo leer Cadena ni desde un ini ni desde una Base de datos ni desde ningún sitio.

Gracias igualmente.

Cómo? no entiendo:
desde luego que esto:
Código Delphi [-]
Cadena := #27#112#0#60#240#13#10;
NO ES LO MISMO que esto
Código Delphi [-]
Cadena := '#27#112#0#60#240#13#10';
El uno es una cadena de secuencias de Caracteres AsCII y el el otro yo diria es una palabra.
No entiendo tu Objeción :rolleyes: :confused::o:)
Por otro lado podrias tranquilamente guardar la secuencia de número ASCII en tu archivo .INI y al leerlo podria utilizar la funcion CHR de Delphi para obtener el equivalente en ASCII.
Por ejemplo:
chr(65) me devuelve 'A';
chr(32) me devuelve el Espacio ' ';
etc,etc,etc.
Saludos...:)

manuweb 05-12-2009 17:33:29

Cita:

Por otro lado podrias tranquilamente guardar la secuencia de número ASCII en tu archivo .INI y al leerlo podria utilizar la funcion CHR de Delphi para obtener el equivalente en ASCII.
Por ejemplo:
chr(65) me devuelve 'A';
chr(32) me devuelve el Espacio ' ';
etc,etc,etc.
Saludos...:)
Podría almacenar los códigos mumericos 27,112,0 (#27#112#0) como una cadena '27,112,0' y recorrer quitando las comas para luego imprimir directamente chr(27)+chr(112)+chr(0). Voy a probar.

Gracias

Croatians 08-12-2009 17:23:45

Imprimir caracteres de control
 
tengo que armar un programita, que va a cargar unos datos, y luego los va a imprimir en una hoja. el tema es que la posicion se tiene que poder especificar con bastante precision.muy probable me den los datos en milimetros. no estoy seguro de esto.alguna recomendacion?gracias

rgstuamigo 08-12-2009 17:49:38

Cita:

Empezado por Croatians (Mensaje 348410)
tengo que armar un programita, que va a cargar unos datos, y luego los va a imprimir en una hoja. el tema es que la posicion se tiene que poder especificar con bastante precision.muy probable me den los datos en milimetros. no estoy seguro de esto.alguna recomendacion?gracias

Pues deberias usar un reporteador como por ejemplo QuickReport,Rave Report,Cristal Report,Fast Report,etc,etc,etc, que seguro te van a fascilitar la vida.;).
Saludos...:)


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

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