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: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67:
| procedure TForm2.DruckeCanvasNeu(); var outdc : HDC; { PrinterCanvasHandle } bx,by,ex,ey : integer; { Eckkoordinaten } ibx,iby, iex,iey : integer; { Innereeckkoordinaten } ycmpp, xcmpp : Real; { Pixel to cm } hres,vres,hsiz,vsiz : integer; { Canvasdimensionen } faktor : integer; { Verkleinerungsfaktor } gesamtbreite : integer; { alles im mm } gesamthoehe : integer; innenbreite : integer; innenhoehe : integer; textbreite : integer; textbeginx : integer; zeile1,zeile2 : integer;
begin Printer.BeginDoc; //SpinEdit1.Value := Main.aktuelleschriftgroesse; faktor := 1; gesamtbreite := Main.aktuell.t_o_r+Main.aktuell.t_o_l; gesamthoehe := Main.aktuell.t_o_o+Main.aktuell.t_o_u; innenbreite := Main.aktuell.t_o_r-Main.aktuell.t_o_l; innenhoehe := Main.aktuell.t_o_u-Main.aktuell.t_o_o; outdc := Printer.Canvas.handle; hres := GetDeviceCaps(outdc,HORZRES); {display width in pixels} vres := GetDeviceCaps(outdc,VERTRES); {display height in pixels} hsiz := GetDeviceCaps(outdc,HORZSIZE); {display width in mm} vsiz := GetDeviceCaps(outdc,VERTSIZE); {display height in mm} xcmpp := hsiz/hres*0.1; ycmpp := vsiz/vres*0.1; // Caption:='100 pixels are '+FloatToStr(xcmpp*100)+' cm wide and '+FloatToStr(ycmpp*100)+' cm high'; Printer.canvas.font.size := round(Main.aktuelleschriftgroesse/faktor); Printer.canvas.font.name := 'Arial'; bx := round((Width -((((gesamtbreite/10)/(xcmpp*100))*100)/faktor))/2); by := 0; ex := bx + round(((((gesamtbreite/10)/(xcmpp*100))*100)/faktor)); ey := by + round(((((gesamthoehe/10)/(ycmpp*100))*100)/faktor)); ibx := bx + round(((((Main.aktuell.t_o_l/10)/(xcmpp*100))*100)/faktor)); iex := ibx + round(((((innenbreite/10)/(xcmpp*100))*100)/faktor)); iby := by + round(((((Main.aktuell.t_o_o/10)/(ycmpp*100))*100)/faktor)); iey := iby + round(((((innenhoehe/10)/(ycmpp*100))*100)/faktor)); Rectangle(outdc,bx,by,ex,ey); Rectangle(outdc,ibx,iby,iex,iey); textbreite := Printer.canvas.TextWidth(Main.Form1.Edit1.Text); textbeginx := round((Printer.PageWidth-textbreite)/2); if (Main.Form1.RadioButton1.Checked) then begin zeile1 := (iby-by)+ round(((iey-iby)-Printer.canvas.font.size)/2); Caption := IntToStr(zeile1); Printer.canvas.TextOut(textbeginx,zeile1,Main.Form1.Edit1.Text); end else begin zeile1 := round((iby-by)+(((iey-iby)-((2*Printer.canvas.font.size)+(10/faktor)))/2)); Printer.canvas.TextOut(textbeginx,zeile1,Main.Form1.Edit1.Text); textbreite := Printer.canvas.TextWidth(Main.Form1.Edit2.Text); textbeginx := round((Printer.PageWidth-textbreite)/2); zeile2 := round(zeile1 + Printer.canvas.font.size + (10/faktor)); Printer.canvas.TextOut(textbeginx,zeile2,Main.Form1.Edit2.Text); end; { OLD // zeile1 := round((iey-by)/2); zeile1 := (iby-by)+ round(((iey-iby)- Printer.canvas.font.size)/2); Printer.canvas.TextOut(textbeginx,zeile1,Main.Form1.Edit1.Text); if (Main.Form1.RadioButton2.checked) then begin textbreite := Printer.canvas.TextWidth(Main.Form1.Edit2.Text); textbeginx := round((Printer.PageWidth-textbreite)/2); zeile2 := round(zeile1 + Printer.canvas.font.Size + (10/faktor)); Printer.canvas.TextOut(textbeginx,zeile2,Main.Form1.Edit2.Text); end; } Printer.EndDoc; end; |