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: 1360
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.
|
|
|