zur Zeit ich verwende
keine Schleife
Ich zeichne direkt auf Printer.Canvas, wie
deddyH vorgeschlagen hat
Ich tippe den Code für die Variante 8 Karten so :
Delphi-Quellcode:
// ...
RR1 := Rect(DX,DY, W+DX, H+DY);
Canvas.StretchDraw(RR1, Image1.Picture.Graphic);
RR2 := Rect(DX, 2*DY+H, DX+W, 2*H+2*DY);
Canvas.StretchDraw(RR2, Image1.Picture.Graphic);
RR3 := Rect(DX, 3*DY+2*H, DX+W, 3*H+3*DY);
Canvas.StretchDraw(RR3, Image1.Picture.Graphic);
RR4 := Rect(DX, 4*DY+3*H, DX+W, 4*H+4*DY);
Canvas.StretchDraw(RR4, Image1.Picture.Graphic);
RR5 := Rect(DX, 5*DY+4*H, DX+W, 5*H+5*DY);
Canvas.StretchDraw(RR5, Image1.Picture.Graphic);
RR6 := Rect(2*DX+W,DY, 2*W+2*DX, H+DY);
Canvas.StretchDraw(RR6, Image1.Picture.Graphic);
RR7 := Rect(2*DX+W, 2*DY+H, 2*DX+2*W, 2*H+2*DY);
Canvas.StretchDraw(RR7, Image1.Picture.Graphic);
RR8 := Rect(2*DX+W, 3*DY+2*H, 2*DX+2*W, 3*H+3*DY);
Canvas.StretchDraw(RR8, Image1.Picture.Graphic);
RR9 := Rect(2*DX+W, 4*DY+3*H, 2*DX+2*W, 4*H+4*DY);
Canvas.StretchDraw(RR9, Image1.Picture.Graphic);
RR10 := Rect(2*DX+W, 5*DY+4*H, 2*DX+2*W, 5*H+5*DY);
Canvas.StretchDraw(RR10, Image1.Picture.Graphic);
//...
DX: Abstand zwi Karte in X = 10mm = 40 Pixels
DY: Abstand zwi Karte in Y = 10mm = 40 Pixels
H: Bitmap-Hoehe
W: Bitmap-Breite
Es hat gut geklappt aber es ist auch nicht alternativ
Das ist wie gesagt für die Variante 8 Stück gedacht
Was wäre wenn man 16 Stück auf A4 drucken will
Oder wenn man 3 Stück statt 2 Stück für jede Zeile haben will
Und so weiter
Darum ist mein Code keine dauer Lösung