HbWin

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

HbWin

Mensagem por leandrolinauer »

Bom dia a todos.
Coloquei no sistema a função win_printdlgdc() da hbwin, e funcionou quase 100%, estou com dificuldade para tratar o retorno dela, visto que ao teclar ESC ou clicar em CANCELAR tenho o retorno desta função a variavel com o tipo P retornado da VALTYPE() e não consigo trarar este valor devido ao tipo ser P, o que não entendi é que não encontrei este valor na função VALTYPE(), alguem sabe?

Abaixo a linha

Código: Selecionar todos

hDc := WIN_PRINTDLGDC( @cPrinter, , , )

retornos:
say ValType(hDc) = P
say hdc = "0x00000000" = se teclado esc ou clicado em CANCELAR.
ou
"0x4151043C" = valor aleatorio de acordo com a impressora selecionada.

Problema que não consigo tratar o valor acima, para ver se ficar igual ao 0x0000000, simplesmente nao imprimo.
Se alguem souber outra forma de contrar o ESC ou o cancelar desta função, agradeço desde já.

-:]
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
marcosgambeta
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 16 Jun 2005 22:53

HbWin

Mensagem por marcosgambeta »

Para saber se o valor do ponteiro é nulo (0x00000000), faça assim:

Código: Selecionar todos

IF empty(hDc)
   // nulo
ELSE
   // válido
ENDIF
Atenciosamente,
Marcos Antonio Gambeta
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

HbWin

Mensagem por leandrolinauer »

Boa tarde.
Deu certo, pior que eu havia feito isto antes, mas devo ter errado em algum ponto por isto nao estava dando certo, aí fui testando outras coisas até chegar no retornoda função.

Mas blz, muito obrigado, agora funcionando certinho, vou testar em varias partes de impressão.
Grato
t+
-:]
:{
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Responder