Deine fehlende formatierung macht mir das lesen auf die schnelle unmöglich aber hier ein Beispiel
für alles, änder das "alle" halt mit einer "nur diese" variante.
Delphi-Quellcode:
Uses Printers;
procedure PrintLVSelection(const LV: TListView);
Var
LineHeight,i,j,Y,X:Integer;
begin
With Printer do
begin
BeginDoc;
LineHeight:=Round(Canvas.TextHeight('H')*1.2);
Y:=0;
for i:=0 to lv.Items.Count-1 do
if lv.Items[i].Selected then
begin
If Y+LineHeight>PageHeight Then
begin
NewPage;
Y:=0;
end;
// Canvas.TextOut(0,Y,lv1.Items[i].Caption);
With lv.Items[i] do
begin
X:=0;
Canvas.TextOut(X*PageWidth Div lv1.Width,Y,Caption);
for j:=0 to SubItems.Count-1 do
begin
X:=X+Columns[j].Width;
Canvas.TextOut(X*PageWidth Div lv1.Width,Y,Caption);
end;
end;
Y:=Y+LineHeight;
end;
EndDoc;
end;
end;
edit
hab noch ne "ists markiert" abfrage rangehangen, sollte theoretisch funktionieren, auch subitems sind nun drinnen.