Forum
Grundkurs
»Introduktion
»Snabbguide
»Komponenter
»Händelser
»Strängar
»Räkna med Delphi »Egna
typer
»Selektion
»Iteration
»Menyer
»Funktioner
»Arraystrukturer
Tips & Tricks
»Nya tips
»Blandat
»Databaser
»Filer
»Forms
»Grafik
»Internet
»Komponenter
»Matematik
»Multimedia
»Objekt/ActiveX
»Skrivare
»Strängar
»System
»Mest lästa tips
Artiklar
»Delphi och ADO
»Bygga en DLL
»Skapa en enkel rapport
»Hantera registret
»Enheter, units
»Klassen TCanvas
»Använd LookUp Controls
Nya
tips
Lägg
till tips
Delphilänkar
Gästbok
|
|
|
|
Skriv ut från en TListView
|
Kategori: Skrivare
Inlagt: 2003-12-19
Läst: 1466
Inlagt av: Staffan Berg
|
Beskrivning |
Detta exempel använder Printerobjektet för att skriva ut innehållet i en TListview-kontroll. Marginaler och kolumner ställs in med mm-mått.
|
Kod |
procedure TForm1.cmdSkrivUtClick(Sender: TObject); var n,i,hojd,col1,col2,col3:integer; a,b,c:string ; begin printer.BeginDoc; //Varje logisk enhet är mappad till 0.1 mm //Positiv x till höger och positive y uppåt.... SetMapMode(printer.Canvas.Handle, MM_LOMETRIC); with printer.Canvas do begin //font 5 mm i höjdmått. font.style := [ fsbold ]; Font.Height := 70; Font.Name := 'Verdana'; TextOut(250, - 110, 'Anställda'); Font.Height := 50; font.style := [ ]; font.style := [ fsitalic ]; TextOut(250, - 180, 'Födelsedatum och anställningsdatum'); font.style := [ ]; MoveTo(250, - 250); //Rita ut en linje LineTo(1900, - 250); Font.Height := 30; Font.Name := 'Verdana'; font.style := [ fsbold ]; TextOut(250, - 280, 'Namn'); TextOut(600, - 280, 'Födelsedatum'); TextOut(850, - 280, 'Anst.datum'); TextOut(1100, - 280, 'Namn'); TextOut(1450, - 280, 'Födelsedatum'); TextOut(1700, - 280, 'Anst.datum'); font.style := [ ]; end; //Loopa igenom Listview... n := Listview1.Items.Count - 1; hojd := 320; col1 := 250; col2 := 600; col3 := 850; For i := 0 To n do begin if i = 60 Then begin col1 := 1100; col2 := 1450; col3 := 1700; hojd := 320; end; hojd := hojd + 40; a := Listview1.Items[i].caption; b := Listview1.Items[i].SubItems[0]; c := Listview1.Items[i].SubItems[1]; with printer.Canvas do begin Font.Height := 30; Font.Name := 'Verdana'; TextOut(col1, - hojd, a); TextOut(col2, - hojd, b); TextOut(col3, - hojd, c); end; end; printer.EndDoc; end;
|
|
|