AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TCharts in der Druckvorschau

Ein Thema von delphinewbie · begonnen am 25. Jan 2012 · letzter Beitrag vom 21. Feb 2012
Antwort Antwort
delphinewbie

Registriert seit: 27. Aug 2010
47 Beiträge
 
#1

AW: TCharts in der Druckvorschau

  Alt 26. Jan 2012, 14:04
Erstmal gelöst:
Habe das OnNeedData-Ereignis wieder rausgenommen und das Füllen des Charts in das Ereignis QuickRep1.BeforePrint
gesetzt:
Code:
procedure TForm13.QuickRep1BeforePrint(Sender: TCustomQuickRep;
  var PrintReport: Boolean);
var
i: integer;
begin
for i:=1 to anz_mw do
qrchart1.Chart.Series[1].AddXY(i,messwerte[messkanal-1,i],'',clBlack);
end;
Vllt. geht es auch noch eleganter. Aber ich bin erstmal zufrieden...

Danke an alle
  Mit Zitat antworten Zitat
delphinewbie

Registriert seit: 27. Aug 2010
47 Beiträge
 
#2

AW: TCharts in der Druckvorschau

  Alt 1. Feb 2012, 13:23
Hi,
ein neuer Anlauf: Habe inzwischen den Gedanken mit Quickreport wieder verworfen und mich mal an das riesige Paket TeeChart von Steema gewagt.
Habe mir dazu die Trial-Version (TeeChartPro 2011 VCL)runtergeladen und ich muss schon sagen, da ergeben sich 'ne Menge Möglichkeiten, um ansprechende Charts zu produzieren.
Aber speziell zu meinem Problem habe ich noch keine Lösung ansatzweise gefunden.
Es soll in einer Art Preview angezeigt werden, wie der Druck aussehen wird. Dazu habe ich mir bspw. in Form1 ein TeePreviewPanel1 (Orientation ist ppoPortrait) und auf die weiße 'Papierfläche' eine TChart-Komponente eingefügt . Hier beginnt das eigentliche Problem. Ich möchte nun das komplette TChart um 90 Grad drehen (incl. Title, Legende, etc.) um bei einem Ausdruck im Hochformat das Diagramm auf dem Blatt quer zu legen. Das ganze hätte den großen Vorteil, das ich dann nur das Chart drehen müßte und nicht alle möglichen Texte in Kopf- oder Fußzeilen.
Ich finde einfach keine Möglichkeit, dies über irgenwelche Chart-Eigenschaften oder Methoden zu realisieren.
Eine andere und sicher aufwendigere Lösung wäre wohl die von Darlo vorgeschlagene
Zitat:
Alternative kannst Du ja die TCharts als Bild exportieren, drehen und einfügen.
Wobei ich noch keine Peilung habe, wie ich ein Chart als Bild exportiere, geschweige denn wie ich es noch drehe und wieder einfüge.

Hoffentlich habt ihr einpaar gute Ideen, die mir das Leben nicht allzu schwer machen werden.

Vielen Dank
delphinewbie
  Mit Zitat antworten Zitat
Darlo

Registriert seit: 28. Jul 2008
Ort: München
1.196 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: TCharts in der Druckvorschau

  Alt 1. Feb 2012, 15:18
Tach,

Wobei ich noch keine Peilung habe, wie ich ein Chart als Bild exportiere, geschweige denn wie ich es noch drehe und wieder einfüge.
das ist das kleinste Problem:
Code:
chart1.SaveToBitmapFile([filename]);
Gruß
Philip
  Mit Zitat antworten Zitat
delphinewbie

Registriert seit: 27. Aug 2010
47 Beiträge
 
#4

AW: TCharts in der Druckvorschau

  Alt 16. Feb 2012, 14:24
Der Beitrag kann gelöscht werden...

Geändert von delphinewbie (16. Feb 2012 um 14:27 Uhr) Grund: Statt Abbrechen - auf Antworten gedrückt - Sorry
  Mit Zitat antworten Zitat
delphinewbie

Registriert seit: 27. Aug 2010
47 Beiträge
 
#5

AW: TCharts in der Druckvorschau

  Alt 21. Feb 2012, 12:00
So, nun bin ich tatsächlich so weit gekommen, dass ich also ein Chart als Bild in die Zwischenablage lege, es anschließend in ein Image schiebe und anschließend drehe. Das ganze in einem Quickreport (Form16) mit QRImage.

Code:
FJpeg : TJPEGImage;
clip: TClipboard;

form1.Chart1.CopyToClipboardBitmap;
clip:=Clipboard;
form16.QRImage1.Picture.bitmap.LoadFromClipboardFormat(CF_Bitmap,clip.GetAsHandle(CF_Bitmap),0);
FJpeg:=TJPEGImage.Create;
FJpeg.Assign(form16.QRImage1.Picture.bitmap);
FJpeg.Transform(TJpegTransform(jt_ROT_270));
form16.QRImage1.Picture.Assign(FJpeg);
FJpeg.Free;
clip.Clear;
Das Problem liegt jetzt aber in der Bildqualität. Offensichtlich treten bei meinem Vorgehen Qualitätsverluste auf, sodass der Ausdruck nicht sonderlich gut aussieht. Insbesondere wird das bei den Achsenbeschriftungen des Charts deutlich, wo hier plötzlich grüne Schatten auftreten.
Liegt das in der Natur des Verfahrens (FJpeg.Transform) begründet oder gibt es etwa noch einen Parameter, den man setzen muss ?
Hat noch jemand dieses Phänomen bemerkt ? Der Effekt tritt übrigens auch auf, wenn das Image nicht gedreht wird, also ohne 'FJpeg.Transform(TJpegTransform(jt_ROT_270));'
Lege ich dagegen ein QRChart auf den QuickReport, das dann mit Werten gefüllt wird, ergibt das einen sauberen Ausdruck.
Wo treten die Verluste ein ? Hat jemand eine Idee ?

Danke,
delphinewbie
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: TCharts in der Druckvorschau

  Alt 21. Feb 2012, 12:12
bessere(einstellbare) Ergebnisse bekommst Du mit z.B.
Delphi-Quellcode:
  Chart1.TeeCreateMetafile(true,Rect(0,0,1000,1000)); //WMF
//oder
  Chart1.Draw(DestCanvas,Rect(0,0,1000,1000));
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
delphinewbie

Registriert seit: 27. Aug 2010
47 Beiträge
 
#7

AW: TCharts in der Druckvorschau

  Alt 21. Feb 2012, 12:15
Vielen Dank,
das werde ich gleich mal ausprobieren.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz