INVALID CALL OR ARGUMENT
Pessoal, estou com um problema ao utilizar o objeto Printer do VB. Em determinadas situações (principalmente em Win98se, utilizando impressoras laserjet 1100 pra frente), ao tentar ler a propriedade Printer.Width ou Height, obtenho uma excessão de "Invalid call or argument".
Se o problema fosse constante, não seria tão problema assim... Mas acontece que não o é. Tenho vários nestas condições e o problema aparece apenas em algumas máquinas.
Alguém já passou por problemas semelhantes ?
Se o problema fosse constante, não seria tão problema assim... Mas acontece que não o é. Tenho vários nestas condições e o problema aparece apenas em algumas máquinas.
Alguém já passou por problemas semelhantes ?
Coloque parte do código, para ver se eu tenho como te ajudar ?
OK, segue o local da checagem. Outras propriedades tais como PaperSize, são lidas sem problemas...
O contexto: é uma função que calcula as margens desejadas pelo usuário e verifica se é possÃvel ajustar no papel selecionado. é nesta verificação que ocorre o problema. Centimetro é uma constante de valor 567. No Immediate, se colocar ?printer.width, já ocorre o erro mencionado.
Notei que este erro não acontece em WinXP... Estou desconfiado que o driver da impressora pode ter quebrado alguma compatibilidade de interface com o Printer. Independete do que seja, preciso dar solução... Se puder me ajudar, ficarei muito agradecido!!
If (CDbl(txtMargemEsq.Text) * Centimetro) + _
(CDbl(txtMargemDir.Text) * Centimetro) > Printer.Width Then
MsgBox "Margem não suportada para papel selecionado", , "Mensagem"
SetarMargens = False
txtMargemEsq.SetFocus
Exit Function
Else
SetarMargens = False
Exit Function
End If
[]'s
Reinaldo
O contexto: é uma função que calcula as margens desejadas pelo usuário e verifica se é possÃvel ajustar no papel selecionado. é nesta verificação que ocorre o problema. Centimetro é uma constante de valor 567. No Immediate, se colocar ?printer.width, já ocorre o erro mencionado.
Notei que este erro não acontece em WinXP... Estou desconfiado que o driver da impressora pode ter quebrado alguma compatibilidade de interface com o Printer. Independete do que seja, preciso dar solução... Se puder me ajudar, ficarei muito agradecido!!
If (CDbl(txtMargemEsq.Text) * Centimetro) + _
(CDbl(txtMargemDir.Text) * Centimetro) > Printer.Width Then
MsgBox "Margem não suportada para papel selecionado", , "Mensagem"
SetarMargens = False
txtMargemEsq.SetFocus
Exit Function
Else
SetarMargens = False
Exit Function
End If
[]'s
Reinaldo
Correção do trecho de código acima:
If (CDbl(txtMargemEsq.Text) * Centimetro) + _
(CDbl(txtMargemDir.Text) * Centimetro) > Printer.Width Then
MsgBox "Margem não suportada para papel selecionado", , "Mensagem"
SetarMargens = False
txtMargemEsq.SetFocus
Exit Function
End If
[]'s
Reinaldo
If (CDbl(txtMargemEsq.Text) * Centimetro) + _
(CDbl(txtMargemDir.Text) * Centimetro) > Printer.Width Then
MsgBox "Margem não suportada para papel selecionado", , "Mensagem"
SetarMargens = False
txtMargemEsq.SetFocus
Exit Function
End If
[]'s
Reinaldo
Tópico encerrado , respostas não são mais permitidas