- Delphiartiklar, tips, forum, länksamling - 

      

START | DELPHI | LÄNKARGÄSTBOK 




 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: 1375
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;

 
 
© Copyright 2005 - Staffan Berg
- Alla rättigheter förbehålles -