Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Probleme mit dem Drucken und den Koordinaten

  Alt 27. Sep 2004, 02:08
Um mir die Arbeit beim Drucken etwas zu erleichtern, habe ich den MapMode auf MM_LOMETRIC gestellt. Damit hat eine logische Einheit 0,1 mm ubnd der Ursprung liegt laut PSDK unten links.

Meine Druckroutine sieht nun so aus:
Delphi-Quellcode:
SetMapMode(hDC, MM_LOMETRIC); // E = 0,1 mm
rec.Top := (FVerSize - TOPBORDER) * SCALE;
rec.Left := LEFTBORDER * SCALE;
rec.Bottom := ((FVerSize - TOPBORDER) * SCALE) - (LineHeight div SCALE);
rec.right := (FHorzSize - RIGHTBORDER) * SCALE;
DrawText(hDC, PChar(s), length(s), rec, DT_CENTER);
FVerSize und FHorzSize ermittele ich mit MSDN-Library durchsuchenGetDevicecaps und liegen in Millimetern vor. LineHeight hat den Wert 47.
Delphi-Quellcode:
SetMapMode(Canvas.Handle, MM_LOMETRIC);
GetTextMetrics(Canvas.Handle, tm);
LineHeight := (tm.tmHeight + tm.tmExternalLeading);
FHorzSize := GetDeviceCaps(Canvas.Handle, HORZSIZE);
FVerSize := GetDeviceCaps(Canvas.Handle, VERTSIZE);
Die Werte der Konstanten sind in Millimetern angegeben. TOPBORDER hat den Wert 20 zum Beispiel. SCALE hat den Wert 10 damit ich wieder auf 0,1 mm komme. Für ein Din-A4 Blatt sind die Werte für rec jetzt:
rec.Top = 2660
rec.Left = 250
rec.Bottom = 2656
rec.Right = 1830
Aber er druckt mir nichts aus. Ich muss irgendwo noch einen Denkfehler haben. Ich finde ihn nur nicht. Was mache ich also falsch?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat