Fórum Printer.Canvas #235688

02/06/2004

0

Pessoal, estou tendo um problema com o Printer.Canvas.

Alinho uma linha utilizando a resolução da impressora tudo certinho, a primeira impressao sai correta, quando eu clico no botao imprimir novamente, sai desalinhado em relação a 1ª e permanece com esse alinhamento diferente até finalizar o programa.

Segue a parte de meu programa que realiza essa função.

[i:fb6e0a68a5]
procedure TForm1.Button1Click(Sender: TObject);
var i,j:byte;
linha,tamanho,altura,marg1,marg2: integer;
begin
PrintDialog1.Execute;
i:=0;
j:=0;
Linha:=101;
tamanho:=Printer.Canvas.TextWidth(´A´);
altura:=Printer.Canvas.TextHeight(´A´)+5;

marg1:=150;
marg2:=110+(tamanho*45);

with Printer do
begin
Orientation:=poPortrait;

BeginDoc;
with canvas do
begin
Font.Size:=10;
Font.Name:=´Arial´;
Pen.Width:=5;
Brush.Style:=bsClear;
MoveTo(0,0);
TextOut(marg1,linha+(altura*15),StringGrid1.Cells[0,1]);
end;
EndDoc;

end;

end;
[/i:fb6e0a68a5]

Se acaso alguem puder me ajudar serei grato.

valew :shock:


Una

Una

Responder

Posts

02/06/2004

Vinicius2k

Una,

À primeira vista me parece que o erro desta função está em medir os X e Y antes da definição dos fontes...

Passe as duas linhas em as variáveis altura e largura recebem os valores para após a definição do fonte...
...
  Font.Size:=10; 
  Font.Name:=´Arial´; 
  tamanho:=Printer.Canvas.TextWidth(´A´); 
  altura:=Printer.Canvas.TextHeight(´A´)+5; 
  ...


Caso não solucione, poste novamente...

T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar