procedure TForm1.btnPrintByColumnClick(Sender: TObject); var Row, Col, XOffset, YOffset, ZOffset: integer; Text: string; begin //Décalages pour l'impression //XOffset : du bord gauche de la feuille XOffset := 50; //YOffset : entre chaque ligne YOffset := 50; Printer.BeginDoc; with ListView1 do begin //Parcours de la première colonne du TListView for Row := 0 to Items.Count - 1 do Text := Text + ' | ' + Items[row].Caption; Printer.Canvas.TextOut(XOffset, YOffset, Text); //Réinitialiser la variable Text Text := EmptyStr; //Décaler le point de départ de l'impression //verticale pour les lignes qui suivent en ajoutant //la hauteur de la première ligne imprimée ZOffset := YOffset * 2 + Canvas.TextHeight('gG'); //Parcours des cellules de droite du TListView //en se basant sur le nombre de colonnes de la //première ligne for Col := 0 to Items[0].SubItems.Count - 1 do begin //Pour chaque ligne du TListView for Row := 0 to Items.Count - 1 do Text := Text + ' | ' + Items[Row].SubItems.Strings[Col]; Printer.Canvas.TextOut(XOffset, ZOffset + YOffset * Col, Text); Text := EmptyStr; end; end; Printer.EndDoc; end;
procedure TForm1.btnPrintListViewClick(Sender: TObject); var i: integer; Text: string; begin Printer.BeginDoc; with ListView1 do for i := 0 to Pred(Items.Count) do begin Text := Items[i].Caption + Items[i].SubItems.Text; Printer.Canvas.TextOut(50, i * 50 + 50, Text); end; Printer.EndDoc; end;
procedure TForm1.btnPrintListViewClick(Sender: TObject); var i, j: integer; Text: string; begin Printer.BeginDoc; with ListView1 do for i := 0 to Pred(Items.Count) do begin Text := Items[i].Caption; for j := 0 to Pred(Items[i].SubItems.Count) do Text := Text + ' | ' + Items[i].SubItems.Strings[j]; Printer.Canvas.TextOut(50, i * 50 + 50, Text); end; Printer.EndDoc; end;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question