Autor Beitrag
Bronstein
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: 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:
ausblenden 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
  //Printer.Orientation := poPortrait;
  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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: 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:

ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: 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:
ausblenden Delphi-Quelltext
1:
Chart1.PrintLandscape;					

_________________
Es gibt keine dummen Fragen nur dumme Antworten!!!
Bronstein Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: 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:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 578
Erhaltene Danke: 1

WIN XP
Delphi 6 / Delphi 2006 / Delphi XE
BeitragVerfasst: Fr 11.08.06 13:15 
Habe jetzt folgende Lösung angewandt:
ausblenden 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, 00, 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 109

Windows 10 Professional 64-Bit
VS 215 CE, Delphi 10.1 Berlin Professional
BeitragVerfasst: Fr 11.08.06 14:40 
Folgendes Schnipsel aus einem meiner Projekte. Wochenreihe ist ein TChart.

ausblenden 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!