Printing a TreeView

var
     PrnFile: TextFile;
     MAFNode: TTreeNode;
     TabString: String;
     I: Integer;
begin
// Print Tree View Nodes

     // Prompt To Print - No = Exit
     if (not dlgPrint.Execute) then
          Exit;

     try
          // Assign Printer File
          AssignPrn(PrnFile);
          Rewrite(PrnFile);

          Printer.Title := 'MAF Codes';

          // Print Each MAF code
          MAFNode := trvMAFCode.Items.GetFirstNode;
          while (MAFNode <> nil) do
               begin
                    TabString := '';
                    // Build Indent Level
                    for I := 0 to MAFNode.Level - 1 do
                         TabString := TabString + #9;

                    // Output To Printer - (Set Font Styles)
                    with (Printer.Canvas.Font) do
                         begin
                              if (I = 1) then      // I = Level
(Indentation Level)
                                   Style := Style + [fsBold]
                              else
                                   Style := Style - [fsBold];

                              Writeln(PrnFile, TMAFCode(MAFNode.Text + #13
+ #10);
                         end;

                    // Next Node
               MAFNode := MAFNode.GetNext;
          end;
  finally
     CloseFile(PrnFile);
end;
end;