Druckvorschau für TMS Advanced Charts

Die TMS Komponente „Advanced Charts“ bietet zwar die Möglichkeit eines Ausdrucks und auch die Möglichkeit das Chart in verschiedene Grafikformate abzuspeichern, leider aber gibt es keine Druckvorschau. Diese lässt sicher aber leicht selbst nachrüsten. Im Beispiel wird dazu die kostenlose Komponente TNicePreview verwendet (erhältlich auf der Seite https://priyatna.org, neben einigen anderen netten Komponenten). Obwohl etwas älter lässt sich TNicePreview auch problemlos unter Delphi 2009 einbinden.

Der erste Schritt wäre also der Download und die Installation dieser Komponente in Delphi. Ich gehe davon aus, dass dies kein Problem für Sie ist.

Der zweite Schritt, falls noch nicht geschehen, wäre die Erstellung und Programmierung Ihres Charts, um welche Daten es sich dabei handelt, ist prinzipiell egal.

In die Uses – List Ihrer Form (die das Chart enthält) sollten Sie dabei „Printers“ mit aufnehmen.

Ausdrucken können Sie Ihr Chart wie folgt:

with printer do
begin
BeginDoc;
DasChart.PrintAllPanes(Printer.Canvas,Rect(0,0, printer.PageWidth, printer.PageHeight));
EndDoc;
end;

Kein Problem, aber wir wollen ja eine Druckvorschau:

Dazu gilt es zunächst eine eigene Form anzulegen, welche die Druckvorschau dann anzeigen wird. Auf diese Form ziehen Sie dann die TNicePreview – Komponente. Passen Sie die Preview-Form entsprechend der Formulargrösse an.

Im oberen lassen Sie ein wenig Platz, denn hier sollten dann einige Schaltflächen hin, die zur Steuerung der Druckvorschau dienen. Wenn Sie die TMS Components besitzen könnte dies z.B. ein Dockpanel mit einer Toolbar sein.
Ein einfacher TButton geht natürlich auch.

Insgesamt benötigen Sie 7 Buttons mit folgenden Funktionen. Die TNicePreview Komponente trägt den Namen PrintPreview.

Drucken :

Der Code im Click-Event:

printpreview.PrintAll;

Aktuelle Größe
printPreview.ViewActualSize;

An Seite anpassen
printPreview.ViewFitToWidth;

Ganze Seite
printPreview.ViewWholePage;

2 Seiten
printPreview.ViewTwoPage;

4 Seiten
printPreview.ViewFourPage;

Hinweis: statt der Beschriftung auf den Schaltflächen können Sie natürlich auch geeignete Icons verwenden.

Jetzt müssen Sie nur die Verbindung zwischen der Form mit Ihrem Chart und der Druckvorschau herstellen.
Als erstes gilt es natürlich die Form mit der Druckvorschau in die Uses-List aufzunehmen.
Legen Sie dann eine Schaltfläche (oder Menüeintrag) in der Form mit dem Chart an und im Klickevent geben Sie folgenden Code ein:

(der Name der Druckvorschau ist frmDruckvorschau)

var r :TCanvas; rrect:Trect;
begin
if PrinterSetupDialog1.Execute then begin // die normale TPrinterSetup-Komponente von Delphi
try
frmDruckVorschau:=TfrmDruckVorschau.Create(nil);
frmDruckVorschau.PrintPreview.ReadPrinterConfig;
r:=frmDruckVorschau.PrintPreview.BeginPage;
rrect := Rect(0, 0, frmDruckVorschau.PrintPreview.pagewidth,frmDruckVorschau.PrintPreview.pageheight);
DasChart.PrintPane(0, r, rrect);
frmDruckVorschau.PrintPreview.EndPage;
frmDruckVorschau.Showmodal;
except
on e: exception do infobox(e.message); // oder eine individualisierte Fehlermeldung
end;
frmDruckVorschau.Free;
end;

Das Ganze sieht dann so aus:

Druckvorschau Advanced Charts / TNicePreview

Druckvorschau Advanced Charts / TNicePreview

Selbstverständlich kann das noch etwas verschönert werden, z.B. eben durch geeignete Icons.
Auch beinhaltet die TNicePreview noch weitere Funktionen, die genutzt werden können).

Viel Spass beim Nachbauen und Verbessern!


Werbung & Infos:

HP Store Deal Days September 2024


Verwandte Themen: