SETPRC() Configura os valores de PROW() e PCOL() ------------------------------------------------------------------------------ Sintaxe SETPRC(<nLinha>, <nCol>) --> NIL Argumentos <nLinha> é o novo valor de PROW(). <nCol> é o novo valor de PCOL(). Retorno SETPRC() sempre retorna NIL. Descriçao SETPRC() é uma funçao de tratamento de impressora, útil para o envio de códigos de controle à impressora sem mudar a posiçao da cabeça de impressao. Quando o Clipper imprime, ele atualiza o valor de PCOL() com a quantidade de caracteres enviados à impressora. Nao é feita diferenciaçao entre caracteres que podem ser impressos e aqueles que nao podem ser impressos. Se, por exemplo, uma cadeia de dez caracteres enviados à impressora contém dois caracteres interpretados pela impressora como códigos de controle, o valor de PCOL() em Clipper é incrementado em dez, enquanto que a cabeça de impressao é movida somente oito posiçoes. Isto pode trazer problemas de alinhamento. Utilizando SETPRC(), você pode compensar os códigos de controle reconfigurando PCOL(), como ilustrado no exemplo abaixo. SETPRC() também pode ser usado para suprimir ejeçoes de página quando da impressao com @...SAY. Isto é importante quando a próxima posiçao de linha é menor do que a linha corrente e nao foi enviado um EJECT. Nesta situaçao, o Clipper envia uma ejeçao de página automática se a próxima posiçao de linha da impressao for menor do que o valor corrente de PROW(). Usando SETPRC(), você pode configurar PROW() para um número menor do que a linha corrente, desta forma suprimindo o EJECT automático. Exemplos A funçao definida pelo usuário a seguir, PrintCodes(), ilustra como SETPRC() pode ser utilizada para enviar códigos de controle à impressora sem afetar os valores de PROW() e PCOL(): #include "Set.ch" #define ITALICS_ON CHR(27) + "I" #define ITALICS_OFF CHR(27) + "E" // SET DEVICE TO PRINTER @ 12, 10 SAY "Isto é um " @ PROW(), PCOL() + 2 SAY PrintCodes(ITALICS_ON) + "problema" @ PROW(), PCOL() + 2 SAY PrintCodes(ITALICS_OFF) + "especial" SET DEVICE TO SCREEN RETURN FUNCTION PrintCodes( cCtrlCode ) LOCAL nRow, nCol, lPrinter lPrinter := SET(_SET_PRINTER, .T.) // SET PRINTER ON nRow := PROW() // Guarda posicao da cabeca de // impressao nCol := PCOL() // ?? cCtrlCode // Envia codigo de controle // SETPRC(nRow, nCol) SET(_SET_PRINTER, lPrinter) // Restaura configuracao impressora RETURN "" // Retorna um string nulo ("") Arquivos: Biblioteca CLIPPER.LIB. To download this example - click here.
See Also: PCOL() PROW() SET() SET DEVICE