Imprimir um Memo no Delphi – Opção 1
Para imprimir um campo memo (objeto TMemo) podemos usar
diversos métodos. Um deles é acessar a impressora como se
fosse um arquivo. Para isto é necessário atribuir a impressora
a uma variável arquivo (AssignPrn), abrir o arquivo (ReWrite),
escrever nele (write e writeln) e finalmente fechar o
arquivo (CloseFile). Talvez seja mais fácil entender o que
estou dizendo estudando a rotina abaixo.
procedure ImprimirMemo(Memo: TMemo);
var
I: integer;
F: Text;
begin
{ Usa na impressora a mesma fonte do memo }
Printer.Canvas.Font.Assign(Memo.Font);
AssignPrn(F);
Rewrite(F);
try
for I := 0 to Memo.Lines.Count -1 do
WriteLn(F, Memo.Lines[I]);
finally
CloseFile(F);
end;
end;
Para imprimir um memo com esta rotina basta chamá-la passando
como parâmetro o objeto TMemo. Exemplo:
ImprimirMemo(Memo1);
Observações
Este método está longe de ser perfeito, mas quebra um galho. Uma alternativa que oferece mais precisão na impressão é usar o Canvas do objeto Printer (Printer.Canvas). Outra alternativa bastante prática é usar os recursos de um gerador de relatórios (exemplo: QuickReport).