Autor Beitrag
openhands
Hält's aus hier
Beiträge: 15

Win 2000
D7 Enterprise
BeitragVerfasst: Mo 02.02.04 15:36 
Hallo!

Ich habe ein Programm zum Adressendrucken gecodet. Bie mir funktionierts. jetzt hab ichs letztens nem freund gegeben und bei dem kam nur ein leeres blatt raus, obwohl er ne adresse eingegeben hatte.
das hier is der code:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
procedure TForm1.Button1Click(Sender: TObject);
var a, b, c, d, e, f, g, h, cal, vkor, hkor : real;
begin
  cal := 229;
  vkor := strtofloat(edvkor.Text);
  hkor := strtofloat(edhkor.Text);
    Printer.Orientation := poLandscape;
    Printer.BeginDoc;
    Printer.Canvas.Font.Name := 'Arial';
    Printer.Canvas.Font.Size := 13;
    a := 12.58 + vkor;
    Printer.Canvas.TextOut((1580 + trunc(hkor*cal)),trunc((a-0.31)*cal),edAbsName.Text);  //von Textoberkante
    b := 13.25 + vkor;
    Printer.Canvas.TextOut((1580 + trunc(hkor*cal)),trunc((b-0.31)*cal),edAbsStrasse.Text);  //von Textoberkante
    c := 13.93 + vkor;
    Printer.Canvas.TextOut((1580 + trunc(hkor*cal)),trunc((c-0.31)*cal),edAbsPLZ.Text);  //von Textoberkante
    Printer.Canvas.TextOut((2127 + trunc(hkor*cal)),trunc((c-0.31)*cal),edAbsOrt.Text);  //von Textoberkante
    d := 17.45 + vkor;
    Printer.Canvas.TextOut((3230 + trunc(hkor*cal)),trunc((d-0.31)*cal),edAdrName.Text);  //von Textoberkante
    h := 18.17 + vkor;
    Printer.Canvas.TextOut((3230 + trunc(hkor*cal)),trunc((h-0.31)*cal),edAdrName2.Text);  //von Textoberkante
    e := 18.92 + vkor;
    Printer.Canvas.TextOut((3230 + trunc(hkor*cal)),trunc((e-0.31)*cal),edAdrStrasse.Text);  //von Textoberkante
    f := 19.81 + vkor;
    Printer.Canvas.TextOut((3230 + trunc(hkor*cal)),trunc((f-0.31)*cal),edAdrPLZ.Text);  //von Textoberkante
    Printer.Canvas.TextOut((3777 + trunc(hkor*cal)),trunc((f-0.31)*cal),edAdrOrt.Text);  //von Textoberkante
    g := 20.72 + vkor;
    Printer.Canvas.TextOut((3230 + trunc(hkor*cal)),trunc((g-0.31)*cal),edAdrLand.Text);  //von Textoberkante
  Printer.EndDoc;
end;


Moderiert von user profile iconPeter Lustig: Code- durch Delphi-Tags ersetzt
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Mo 02.02.04 20:44 
Auf einem Drucker sollte man eben nicht in Pixel drucken, denn ein 150dpi Drucker schafft eben nur 150 Pixel in einem Inch, wo ein 1200dpi Drucker 1200 Pixel unterbringt. Die Skalierung, die dabei entsteht, kannst du dir selbst ausrechnen.

Es ist besser, wenn man einen Drucken in inch, cm, mm oder twips anspricht. Hierfür hat Microsoft die Funktion SetMapMode eingeführt, die im Win32SDK und im PSDK erklärt ist. Alternativ kann ich dir dieses Tutorium nahelegen.

_________________
Ist Zeit wirklich Geld?