Ver Mensaje Individual
  #1  
Antiguo 07-09-2006
federicorl federicorl is offline
Miembro
 
Registrado: may 2006
Posts: 31
Reputación: 0
federicorl Va por buen camino
Red face comandos de impresion

en otro hilo hemos estado tratando de hacer el manejo de las secuencias de escape de las impresoras, yo trabajo con la tm-t90 de epson y ya encontre el comando para cortar el papel es #27 +#105
y me funciono definiendolo como un constante como se ve abajo

const pNewLn = #10 +#13; // Salto de linea
pCuton = #27 +#105; //Corte #27 +#105

begin
PWrite(pNewLn );
PWrite(pNewLn );
PWrite(' hola como estas');
PWrite(pNewLn );
PWrite(pNewLn );
PWrite(' Preparando Prueba de Corte');
PWrite(pNewLn );
PWrite(pCuton);
end;

lo que ahora quiero es poder manejarlo como una variable que en un campo se capture esta secuencia y se ejecute, pero no funciona asi con uan variable, asi:

const
pNewLn = #10 +#13; // Salto de linea
Var
Varcut :String;
Begin

Varcut := edit1.Text;
PWrite(' Preparando Prueba de Corte');
PWrite(pNewLn );
PWrite(Varcut);

la impresora me imprime el comando en vez de ejecutarlo, alguien podria decirme porque y como lo soluciono, el procedimiento es el que se publico en otro hilo y la presento a continuacion:

Procedure TForm1.PWrite(s:String);
var PT :Integer;
P :Pchar;
Begin
PT := FileOpen('lpt1',fmOpenWrite ); // Abrimos la impresora como un archivo
P := PChar( s ); //convertimos la cadena a un PChar
FileWrite(PT,P^,length( s )); //escribimos a la impresora
FileClose(PT);//cerrar el archivo de la impresora
end;

de antemano gracias por su tiempo y disculpen si la pregunta es muy tonta
Responder Con Cita