procedure PrintTStrings(Lst : TStrings) ; var I, Line : Integer; begin I := 0; Line := 0 ; Printer.BeginDoc ; for I := 0 to Lst.Count - 1 do begin Printer.Canvas.TextOut(0, Line, Lst[I]);
{Font.Height is calculated as -Font.Size * 72 / Font.PixelsPerInch which returns a negative number. So Abs() is applied to the Height to make it a non-negative value} Line := Line + Abs(Printer.Canvas.Font.Height); if (Line >= Printer.PageHeight) then Printer.NewPage; end; Printer.EndDoc; end;
med denne funktion skriver du fx PrintTStrings(memo1.lines);
du skal dog huske at lave en global variabel som er:
Printer : TPrinter;
som skal stå oppe hvor der står Form1 : TForm1 eller noget i den retning :)
koden indsætter du i en buttons event eller et menupunkt eller andet.
var Line:Integer; PrintText:System.Text; begin if PrintDialog1.Execute then begin AssignPrn(PrintText); ReWrite(PrintText); Printer.Canvas.Font := History.Font; for Line :=0 to History.Lines.Count - 1 do Writeln(PrintText, History.Lines[Line]); System.Close(PrintText); end; end;
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.