Hallo Kodezwerg,
habe deinen Code etwas umgeändert.
Delphi-Quellcode:
procedure TForm1.ToolButton8Click(Sender: TObject);
Var
LineHeight,i,j,Y,X:Integer;
begin
if PrintDialog1.Execute then
begin
Printer.Title := 'Mischungsliste';
Printer.Copies := 1;
Printer.Orientation := poLandscape;
With Printer do
begin
BeginDoc;
LineHeight:=Round(Canvas.TextHeight('H')*1.2);
Y:=0;
for i:=0 to listview1.Items.Count-1 do
if listview1.Items[i].Checked then
begin
If Y+LineHeight>PageHeight Then
begin
NewPage;
Y:=0;
end;
// Canvas.TextOut(0,Y,lv1.Items[i].Caption);
With listview1.Items[i] do
begin
X:=0;
printer.Canvas.TextOut(X*PageWidth Div listview1.Width,Y,Caption);
for j:=0 to SubItems.Count-1 do
begin
X:=X+listview1.Columns[j].width;
printer.Canvas.TextOut(X*PageWidth Div listview1.Width,Y,subitems[j]);
end;
end;
Y:=Y+LineHeight;
end;
EndDoc;
end;
end;
end;
Mir war schon klar, daß ich eine Abfrage machen muß, die prüft ob Checkbox an oder aus ist. Der Code den ich verwände,baut soweit ich ihn verstanden habe, die Formatierung
spaltenweise auf, was eine Abfrage zeilenweise schwierig macht. Ich wollte den fertigen Ausdruck aber nicht nochmal komplett neu programmieren.