/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
2 printere
Fra : Henning Madsen


Dato : 22-03-03 22:25

Jeg er den lykkelige (ulykkelige) ejeraf to printere
Til udskrift på en Lexmark printer bruges følgende program
procedure TForm1.Button1Click(Sender: TObject);
var
X, Y, Z, L, K : Integer;
Navn : String;
begin
X := 100; // Udprintnings afstand fra venstre.
Y := 80; // Udprintnings afstand fra toppen.
K := 0;
Printer.Orientation := poPortrait;
Printer.BeginDoc;
For Z := 0 To ListBox.Items.Count - 1 Do Begin
L := Length(ListBox.Items[Z]);
Navn := Copy(ListBox.Items[Z],0,(L));

If Z >= 81 Then Begin // 81 er antal linier på A4 papiret
X := 1100;
K := 81;
End;
If Z >= 162 Then Begin
X := 2100;
K := 162;
End;
If Z >= 242 Then Begin
X := 3100;
K := 242;
End;
Printer.Canvas.TextOut(X,100 + Y * (Z - K), Navn);
End;
Printer.EndDoc;
end;
Denne printer hænger på LPT1
PÅ LPT2 hænger en IBM læserprinter.
Da der altid er de samme data der skal hentes syntes jeg det er nemmere at
lave en menu som denne
Udprint fra
Lexmark Her vel jeg hente og starte
ovenfor viste program
IBM Her hentes et program magen
til blot med rettelser for den forskellige opløsning der er på IBM'en.
Men hvad skal jeg skrive øverst i programmet for at fortælle at udskriften
er til LPT2 ?
Lexmark er i Windows 98 sat som standard printer og jeg bruger Delphi 6
Håber der er en der vel hjælpe mig med problemet.
----
Med venlig hilsen
Henning Madsen




 
 
Klaus Petersen (23-03-2003)
Kommentar
Fra : Klaus Petersen


Dato : 23-03-03 17:21

Simpelt nok egentlig.

I hjælpen kan du læse om TPrinter objektet.

Der vil du kunne læse, at den har en attribut, der hedder Printers, som er
af typen TStrings.

Den attribut indeholder navnene på alle de printere, som der er installeret
på maskinen. Det kan du bruge til din GUI.

Desuden har TPrinters en attribut, der hedder PrinterIndex. Denne read/write
attribut bestemmer hvilken printer, TPrinter objektet repræsenterer.

Så er det jo bare at sætte PrinterIndex til den printer, du ønsker at
udskrive til - Værdien, du skal sætte den til, er indeks værdien på den
streng, printerens navn har i Printers attributten.

Med andre ord skal du ikke tænke på hvilken printer udgang, du ønsker at
skrive til.



Klaus Petersen (23-03-2003)
Kommentar
Fra : Klaus Petersen


Dato : 23-03-03 17:28

> X := 100; // Udprintnings afstand fra venstre.
> Y := 80; // Udprintnings afstand fra toppen.

Pas i øvrigt på med at bruge statiske koordinater når du arbejder med
printere.

Problemet er, at din udskrift bliver afhængig af hvad printerens opløsning
er sat til.

Koordinat 100 er ikke samme sted på en printer med en opløsning på 300 dpi i
forhold til en printer med 600 dpi.

Du kan bruge PageWidth og PageHeight attributterne til at udregne
koordinaterne ud relativt til opløsningen, dvs. i stil med

X := Printer.PageWidth div 10; // en tiende del inde på siden



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408195
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste