Autor |
Beitrag |
Bronstein
      
Beiträge: 578
Erhaltene Danke: 1
WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
|
Verfasst: Di 14.03.06 10:11
Möchte ein TChart drucken. Es soll auf eine Din A4 Seite gedruckt werden und im Querformat. Das Diagramm sollte möglichst die ganze Seite ausfüllen.
Habe hier mal ein bisschen Code im Internet gefunden:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| var rect1, rect2 : TRect; Printer: TPrinter; hoehe, laenge : integer; begin rect1.Left := 0; rect1.Top := 0; rect1.Right := Printer.PageWidth-1; rect1.Bottom := Printer.PageHeight-1;
Chart1.PrintRect(rect1); end; |
Das funktioniert aber nicht.
_________________ Es gibt keine dummen Fragen nur dumme Antworten!!!
|
|
Bronstein 
      
Beiträge: 578
Erhaltene Danke: 1
WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
|
Verfasst: Di 14.03.06 16:05
Oder gibt es einen Möglichkeit, dass ich zwei Diagramme auf eine Seite bringe.
So habe ich mein Diagramm jetzt schonmal auf eine schöne größe gebracht, leider halt nur Hochkant und nicht im Querformat.
Jetzt habe ich aber noch ein zweites Diagramm, wie bekomm ich dies jetzt per Code auf die gleiche Seite wie mein erstes diagramm:
Delphi-Quelltext 1: 2: 3: 4: 5:
| rect1.Left := 0; rect1.Top := 0; rect1.Right := 4800; rect1.Bottom := 2600; Chart1.PrintRect(rect1); |
_________________ Es gibt keine dummen Fragen nur dumme Antworten!!!
|
|
Bronstein 
      
Beiträge: 578
Erhaltene Danke: 1
WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
|
Verfasst: Di 14.03.06 21:51
Hat niemand eine Ahnung wie das funtionieren könnte?
Habe noch eine andere Idee, da ich ja zwei Diagramme habe könnte ich auch beide auf eine Seite machen, aber wie bekomme ich zwei Diagramme auf eine Seite?
_________________ Es gibt keine dummen Fragen nur dumme Antworten!!!
|
|
Bronstein 
      
Beiträge: 578
Erhaltene Danke: 1
WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
|
Verfasst: Mi 15.03.06 11:58
Habe jetzt was herrausgefunden, mit dem man das Diagramm im Querformat druckt, jedoch weiß ich jetzt nicht wie ich die Größe des Diagramms angeben kann das ausgedruckt werden soll.
Ich möchte ja, dass das Diagramm den kompletten Platz des Blattes ausfüllt.
Hier der Code zum Querformat drucken:
Delphi-Quelltext 1:
| Chart1.PrintLandscape; |
_________________ Es gibt keine dummen Fragen nur dumme Antworten!!!
|
|
Bronstein 
      
Beiträge: 578
Erhaltene Danke: 1
WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
|
Verfasst: Fr 04.08.06 16:01
Ich wei jetzt zwar wie man in Querformat druckt, auswählen auf was er druckt, A3 oder A4.
Das drucken im Querformat geht ja folgendermaßen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| var x,y:integer; begin printer.orientation:=polandscape; x:=printer.pagewidth-1; y:=printer.pageheight-1; printer.begindoc; chart1.printpartial(rect(0,0,x,y)); printer.enddoc; end; |
Wie kann ich hier jetzt angeben, dass er auf A3 drucken soll
_________________ Es gibt keine dummen Fragen nur dumme Antworten!!!
|
|
alzaimar
      
Beiträge: 2889
Erhaltene Danke: 13
W2000, XP
D6E, BDS2006A, DevExpress
|
Verfasst: Fr 04.08.06 17:20
Sollte das nicht alles über den Printmanager einzustellen sein? Du musst dem dem TChart doch nur den Druckbereich mitteilen, und dann das Teil ausdrucken, oder?
_________________ Na denn, dann. Bis dann, denn.
|
|
Bronstein 
      
Beiträge: 578
Erhaltene Danke: 1
WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
|
Verfasst: Fr 11.08.06 13:15
Habe jetzt folgende Lösung angewandt:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| var bmp , TargetBitmap: TBitmap; begin bmp := TBitmap.Create; BMP.Assign(frmPMJ.GetFormImage); TargetBitmap := TBitmap.Create; TargetBitmap.Height := frmPMJ.PageControl1.Height-41; TargetBitmap.Width := frmPMJ.PageControl1.Width-26; BitBlt(TargetBitmap.Canvas.Handle, 0, 0, frmPMJ.PageControl1.Width, frmPMJ.PageControl1.Height-20, bmp.Canvas.Handle,frmPMJ.PageControl1.Left+12, frmPMJ.PageControl1.Top+33, SRCCOPY); IF PrintDialog1.Execute THEN BEGIN printer.orientation:=polandscape; Printer.BeginDoc; Printer.Canvas.StretchDraw(RECT(0,0,Printer.PageWidth,Printer.PageHeight), TargetBitmap); Printer.EndDoc; end; |
_________________ Es gibt keine dummen Fragen nur dumme Antworten!!!
|
|
mikhal
      
Beiträge: 109
Windows 10 Professional 64-Bit
VS 215 CE, Delphi 10.1 Berlin Professional
|
Verfasst: Fr 11.08.06 14:40
Folgendes Schnipsel aus einem meiner Projekte. Wochenreihe ist ein TChart.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| uses ..., Printers,... ... if Wochenreihe.Visible then begin Wochenreihe.Foot.Text.clear; Wochenreihe.Foot.Text.Add('Vertraulich! Nur für autorisiertes Personal!'); Printer.Orientation := poLandscape; Wochenreihe.PrintRect(Rect(0,0,Printer.PageWidth-1,Printer.PageHeight-1)); Wochenreihe.Foot.Text.clear; end... |
Funktioniert bei mir einwandfrei.
Mikhal
_________________ Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
|
|