Imprimindo o conteúdo de um Memo

O código abaixo implementa uma função para imprimir o conteúdo de um componente Memo.

Para que seja feita a impressão, o código cria um arquivo texto de impressão (MemoFile :TextFile), com o objetivo de armazenar as linhas existentes no memo.

Neste arquivo são armazenadas todas as linhas existentes no memo.

O código completo:

Procedure TForm1.Memo_Print(Conteudo:TStrings);
Var
MemoFile :TextFile;
P :Integer;
Begin AssignPrn(MemoFile);
Rewrite(MemoFile);
 For P := 0 to Conteudo.Count-1 do
Writeln(MemoFile,Conteudo.Strings[P]);
CloseFile(MemoFile);
end;

Exemplo :

Procedure Tform1.Button1Click(Sender:TObject);
begin
MemoPrint(Memo1.Lines);
end;

2ª Dica

Imprimindo o conteúdo de um TMemo ou um TListBox?

A procedure abaixo recebe um objeto do tipo TStrings como paramêtro e imprime o seu conteúdo na impressora padrão. Pelo fato de ela usar uma TStrings, a procedure irá trabalhar com qualquer tipo de componente que contenha uma propriedade do tipo TStrings, como um TDBMemo ou um TListBox.

 

// Adicione a Unit Printers na cláusula do seu Form
uses Printers;
 
procedure ImpStrings(Strings: TStrings);
var Prn: TextFile;
  i: Word;
begin
  AssignPrn(Prn);
  try
  Rewrite(Prn);
  try
  for i := 0 to Strings.Count -1 do
  writeln(Prn, Strings.Strings[i]);
  finally
  CloseFile(Prn);
  end;
  except
  on EInOutError do
  MessageDlg('Erro na impressão do texto.' mtError, [mbOK], 0);
  end;
end;

3ª Dica

Para imprimir o conteúdo de um TMemo ou um TListbox, use o seguinte código:

PrintStrings(Memo1.Lines);
ou
PrintStrings(Listbox1.Items);