- 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

 

Kontrollera om en skrivare är en laser eller matrisskrivare Kategori: Skrivare
Inlagt: 2005-05-02
Läst: 1266
Inlagt av: Staffan Berg
Beskrivning
Som rubriken talar om kontrollerar denna funktion vilken typ av skrivare som är den aktuella.
Kod
function IsPrinterMatrix: Boolean; 
var 
 DeviceMode: THandle; 
 Device, Driver, Port: array [0..79] of Char; 
 pDevice, pDriver, pPort: PChar; 
begin 
 
 // Determinate that active printer is a Dot-Marix 
 Result:= False; 
 pDevice := @Device; 
 pDriver := @Driver; 
 pPort  := @Port; 
 
 Device := #0; 
 Driver := #0; 
 Port  := #0; 
 
 Printer.GetPrinter(pDevice, pDriver, pPort, DeviceMode); 
 
 // Printer can be dot-matrix when number of colors is maximum 16 
 // and when printer is capable to print only for TRUETYPE 
 // fonts as graphics (dot-matrix and PCL printers are capable for that). 
 
 if (GetDeviceCaps(Printer.Handle,NUMCOLORS)<=16) and 
   (DeviceCapabilities(pDevice, pPort,DC_TRUETYPE,nil,nil) = DCTT_BITMAP) 
 then 
  Result := True; 
end; 
 
begin 
 writeln ('Active printer is ', Printer.Printers[Printer.PrinterIndex]); 
 
 if IsPrinterMatrix then 
  writeln('This is a Dot-Matrix printer') 
 else 
  writeln('This is a LaserJet or InkJet printer'); 
end. 
 

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