Drucken

nonkonformist

Grünschnabel
warum geht dieser code nicht? ich versuche ein stringgrid zu drucken
ich habe es in PrintDialog1 reingeschreiben
und unter uses steht printers
var zeile, x, y, a, b: integer;
breite, hoehe, randlinks, randoben: integer;
begin

if PrintDialog1.Execute then begin
Printer.BeginDoc; //Druckjob beginnen

//Blattgröße in 1/10 mm ermitteln:
breite:=GetDeviceCaps(Printer.Canvas.Handle, HORZSIZE)*10;
hoehe:=GetDeviceCaps(Printer.Canvas.Handle, VERTSIZE)*10;

randlinks:=250; //2,5 cm
randoben:=250; //2,5 cm

x:=randlinks;
y:=randoben*-1;

for zeile:=0 to grid.rowCount-1 do begin

if -y>(hoehe-2*randoben) then begin
y:=randoben*-1;
Printer.NewPage;
end;
SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC); //Umstellen auf 1/10 mm

//Schrift-Einstellungen:
Printer.Canvas.Font.Name:='Courier New';
Printer.Canvas.Brush.Color:=clWhite;
Printer.Canvas.Font.Height:=50; //5 mm
a := grid.rowcount;
b := grid.ColCount;
if y=-randoben then begin
Printer.Canvas.Font.Style:=[fsbold];
Printer.Canvas.TextOut(x, y, 'Seite '+
IntToStr(Printer.PageNumber));
Printer.Canvas.Font.Style:=[];
y:=y-Printer.Canvas.TextHeight(grid[rowcount]]);
end;

Printer.Canvas.TextOut(x, y, grid[rowcount];

y:=y-Printer.Canvas.TextHeight(grid.rowcount);

end;
Printer.EndDoc;
end;
end;
 
Hallo,
du solltest
1. deinen Code formatieren [ CODE] .... [ /CODE] (ohne Leerzeichen nach [)
2. uns wissen lassen, was nicht geht z. B. Felermeldung angeben
 

Neue Beiträge

Zurück