//---------------------------------------------------------------------------- // //----------------------------------------------------------------------------
{$R *.dfm} //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- constructor TFrame3.Create(Owner:TComponent); begin if Printer=nilthenbegin
errorn(14,' Kein Drucker installiert');
Exit; end elsebegin inherited Create(Owner);
ThumbnailPreview1.PrintPreview:=PrintPreview1; end;
firstpreview:=true;
PrintDialog2:=TPrintDialogEx.Create(self); end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- destructor TFrame3.Destroy; begin
PrintDialog2.Free;
ThumbnailPreview1.Free;
PrintPreview1.Free; inherited Free; end; //---------------------------------------------------------------------------- //- display Treeview in Richedit - //- - //---------------------------------------------------------------------------- procedure TFrame3.PrintTree(var RE:TRichEdit;Tree:TTreeView); procedure printnode(lvl:Integer;N:TTreenode); const indent=' '; var
i:Integer;
rec:String;
C:TTreenode; begin if N<>nilthenbegin
rec:=''; for i:=1 to lvl do
rec:=rec+indent;
rec:=rec+N.Text;
RE.Lines.Add(rec);
C:=N.getFirstChild; while C<>nildobegin
printnode(lvl+1,C);
C:=C.getNextSibling; end; end; end; begin
RE.Lines.Clear;
printnode(0,Tree.TopItem); end; //---------------------------------------------------------------------------- //- Function Drucken - //- - //---------------------------------------------------------------------------- procedure TFrame3.DruckenClick(Ty:PrintTypes;Redit:TRichEdit;Img:TImage;
LoadedFile:JString); begin if Printer<>nilthenbegin if firstpreview thenbegin with PrintPreview1 dobegin
Zoom:=100;
ZoomState:=zsZoomToWidth;
Hochformat.Enabled:=Orientation=poLandscape;
Querformat.Enabled:=Orientation=poPortrait;
PrintJobTitle:=Application.Title+' '+ExtractFileName(PrintFile);
DateSeparator:='.'; if opt.R.Language=english thenbegin
ShortDateFormat:='m/d/yyyy';
DateSeparator:='/'; end else
ShortDateFormat:='d.m.yyyy'; end;
PrintFile:=LoadedFile;
PrintType:=Ty; if Ty=Richtext then
RE:=Redit elseif Ty=Imageview then
IM:=Img; end;
Screen.Cursor:=crHourGlass;
CreatePages;
Screen.Cursor:=crDefault; end end; //------------------------------------------------------------------------------ // //------------------------------------------------------------------------------ procedure TFrame3.ZoominClick(Sender: TObject); begin
PrintPreview1.Zoom:=(PrintPreview1.Zoom*5) div 4; end; //------------------------------------------------------------------------------ // //------------------------------------------------------------------------------ procedure TFrame3.ZoomoutClick(Sender: TObject); begin
PrintPreview1.Zoom:=(PrintPreview1.Zoom div 5)*4; end; //------------------------------------------------------------------------------ // //------------------------------------------------------------------------------ procedure TFrame3.ZoomNormalClick(Sender: TObject); begin
PrintPreview1.Zoom:=100;
PrintPreview1.ZoomState:=zsZoomToFit; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.ZoomChange(scale:integer;state:TZoomState); begin
PrintPreview1.Zoom:=scale;
PrintPreview1.ZoomState:=state; //CreatePages; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.PDFButtonClick(Sender:TObject); begin if PrintPreview1.CanSaveAsPDF thenbegin
SaveDialog1.FileName:=StringReplace(PrintFile,ExtractFileExt(PrintFile),'',
[rfReplaceAll])+'.pdf';
SaveDialog1.InitialDir:=ExtractFilePath(opt.R.Infile);
SaveDialog1.Options:=[ofOverwritePrompt,ofPathMustExist];
SaveDialog1.Filter:=trans(lang,33,'Akrobatdatei (*.pdf)|*.pdf'); if SaveDialog1.Execute then
PrintPreview1.SaveAsPDF(SaveDialog1.FileName) end else
errorn(15,'zur Zeit nicht möglich'); end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.setPreviewFull(); begin
PrintPreview1.ZoomState:=zsZoomToFit; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.PrintButtonClick(Sender:TObject); begin if PrintPreview1.State=psReady thenbegin
PrintPreview1.SetPrinterOptions;
PrintPreview1.PrintJobTitle:=PrintJobTitle;
PrintPreview1.UpdateAnnotation;
PrintDialog2.MinPage:=1;
PrintDialog2.FromPage:=1;
PrintDialog2.ToPage:=PrintPreview1.TotalPages;
PrintDialog2.MaxPage:=PrintPreview1.TotalPages;
PrintDialog2.PrintRange:=prAllPages;
PrintDialog2.Options:=[poPageNums,poSelection];
PrintDialog2.PrintToFile:=false;
PrintDialog2.Ctl3D:=true; if PrintDialog2.Execute thenbegin if PrintDialog2.PrintRange=prSelection then
PrintPreview1.PrintPages(PrintPreview1.CurrentPage,
PrintPreview1.CurrentPage) else
PrintPreview1.PrintPages(PrintDialog2.FromPage,PrintDialog2.ToPage); end end; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.LoadButtonClick(Sender:TObject); begin if OpenDialog1.Execute thenbegin
Screen.Cursor:=crHourGlass;
Caption:=Application.Title+' - lade aus Datei...'; try
PrintPreview1.LoadFromFile(OpenDialog1.FileName); finally
Caption:=Application.Title;
Screen.Cursor:=crDefault; end; end; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.PageNavigatorChange(Sender:TObject;NewTab:Integer; var AllowChange:Boolean); begin
PrintPreview1.CurrentPage:=NewTab+1; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.PrintPreviewChange(Sender:TObject); begin while PageNavigator.Tabs.Count<PrintPreview1.TotalPages do
PageNavigator.Tabs.Add(IntToStr(PageNavigator.Tabs.Count+1)); while PageNavigator.Tabs.Count>PrintPreview1.TotalPages do
PageNavigator.Tabs.Delete(PageNavigator.Tabs.Count-1);
PageNavigator.TabIndex:=PrintPreview1.CurrentPage-1; if PrintPreview1.State=psCreating then //To be able to see and navigate pages, which are prepared so far
Application.ProcessMessages elsebegin
PrintButton.Enabled:=PrintPreview1.PrinterInstalled; end; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.PrintPreviewBeginDoc(Sender:TObject); begin
Caption:=Application.Title+' - erzeuge Seiten...'; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.PrintPreviewEndDoc(Sender:TObject); begin
Caption:=Application.Title;
PrintButton.Enabled:=PrintPreview1.PrinterInstalled; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.PrintPreviewBeforePrint(Sender:TObject); begin
Screen.Cursor:=crHourGlass;
Caption:=Application.Title+trans(lang,34,' - bereite Druck vor...'); end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.PrintPreviewAfterPrint(Sender:TObject); begin
Caption:=Application.Title;
Screen.Cursor:=crDefault;
PrintButton.Enabled:=PrintPreview1.PrinterInstalled; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.PrintPreviewPrintProgress(Sender:TObject;
PageNum,Progress:Integer;var AbortIt:Boolean); begin
Caption:=Format(trans(lang,35,'%s - Druck Seite %d von %d (%%%d fertig)...'),
[Application.Title,PageNum,PrintPreview1.TotalPages,Progress]); end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.PrintPreviewAnnotation(Sender:TObject;PageNo:Integer;
Canvas:TCanvas); begin with PrintPreview1.PrinterPageBounds dobegin
Canvas.Pen.Width:=0;
Canvas.Pen.Style:=psDot;
Canvas.Pen.Color:=clLtGray;
Canvas.MoveTo(Left,0);
Canvas.LineTo(Left,PrintPreview1.PaperHeight);
Canvas.MoveTo(Right,0);
Canvas.LineTo(Right,PrintPreview1.PaperHeight);
Canvas.MoveTo(0,Top);
Canvas.LineTo(PrintPreview1.PaperWidth,Top);
Canvas.MoveTo(0,Bottom);
Canvas.LineTo(PrintPreview1.PaperWidth,Bottom); end; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.CreateBorders(R:TRect); var
partial:JString; begin with PrintPreview1 dobegin //The following line ensures one pixel pen width in any mapping mode.
Canvas.Pen.Width:=0;
Canvas.Brush.Style:=bsCLear;
Canvas.Rectangle(R.Left,R.Top,R.Right,R.Bottom-borderfontsize); //We write also the page number under the frame.
Canvas.Font.size:=borderfontsize;
SetTextAlign(Canvas.Handle,TA_LEFT or TA_TOP);
Canvas.TextOut(R.Left,R.Bottom-borderfontsize,DateToStr(date));
SetTextAlign(Canvas.Handle,TA_CENTER or TA_TOP);
Canvas.TextOut((R.Right-R.Left)div 2+R.Left,R.Bottom-borderfontsize,'');
SetTextAlign(Canvas.Handle,TA_RIGHT or TA_TOP);
Canvas.TextOut(R.Right,R.Bottom-borderfontsize,
Format(trans(lang,36,'Seite %d'),[TotalPages+1]));
SetTextAlign(Canvas.Handle,TA_LEFT or TA_TOP);
Canvas.TextOut(R.Left,R.Top+Canvas.Font.Height-8,
Application.Title+' '+Version_IDE);
SetTextAlign(Canvas.Handle,TA_RIGHT or TA_TOP);
partial:=''; if Previewselected then
partial:=trans(lang,233,'Auszug aus ');
Canvas.TextOut(R.Right,R.Top+Canvas.Font.Height-8,
partial+ExtractFileName(PrintFile)); end end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.PrintPreviewNewPage(Sender:TObject); var
R:TRect; begin with PrintPreview1 dobegin //The following line ensures one pixel pen width in any mapping mode.
Canvas.Pen.Width:=0;
Canvas.Brush.Style:=bsCLear; //We are going to draw a rectangular frame on the page with 1cm distance //from edges of the paper.
R:=PageBounds; with ConvertXY(Framelinks,Frameoben,mmLoMetric,Units) do
InflateRect(R,-X,-Y); //Canvas.Rectangle(R.Left, R.Top, R.Right, R.Bottom); //We write also the page number under the frame.
Canvas.Font.size:=borderfontsize; //SetTextAlign(Canvas.Handle, TA_RIGHT or TA_TOP); //Canvas.TextOut(R.Right, R.Bottom, Format('Page %d', [TotalPages+1]));
SetTextAlign(Canvas.Handle,TA_LEFT or TA_TOP);
CreateBorders(R); end; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.CreateRichTextPage; var
R:TRect; begin with PrintPreview1 dobegin //Don't forget that we have already drawn a frame for the page with 1cm //margin. We have to exclude it from the paper size. Besides that, we //want to include 1cm margin for the text also.
R:=PageBounds; with ConvertXY(Randlinks,RandOben,mmLoMetric,Units) do
InflateRect(R,-X,-Y);
PaintRichText(R,RE,0,nil); end; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.CreateImageOnlyPage; var
R:TRect; begin with PrintPreview1 dobegin //Don't forget that we have already drawn a frame for the page with 1cm //margin. We have to exclude it from the paper size. Besides that, we //want to include 5mm margin for the image also.
R:=PageBounds; with ConvertXY(Randlinks,RandOben,mmLoMetric,Units) do
InflateRect(R,-X,-Y);
PaintGraphicEx(R,IM.Picture.Graphic,true,false,true); end; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.CreatePages; begin
Screen.Cursor:=crHourGlass;
visible:=false; with PrintPreview1 dobegin
Hochformat.Enabled:=Orientation=poLandscape;
Querformat.Enabled:=Orientation=poPortrait;
Units:=TUnits(1);
BeginDoc; try case PrintType of
Richtext:
CreateRichTextPage;
Imageview:
CreateImageOnlyPage end finally
EndDoc; end; end;
visible:=true;
Screen.Cursor:=crDefault; { Revient toujours à normal } end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.HochformatClick(Sender:TObject); begin
Screen.Cursor:=crHourGlass;
PrintPreview1.Orientation:=poPortrait;
CreatePages(); //PrintPreview1.UpdateAnnotation;
Hochformat.Enabled:=false;
Querformat.Enabled:=true;
Screen.Cursor:=crDefault; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.QuerformatClick(Sender:TObject); begin
Screen.Cursor:=crHourGlass;
PrintPreview1.Orientation:=poLandscape;
CreatePages(); //PrintPreview1.UpdateAnnotation;
Hochformat.Enabled:=true;
Querformat.Enabled:=false;
Screen.Cursor:=crDefault; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.Splitter2Moved(Sender:TObject); begin
ThumbnailPreview1.Update; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.Splitter1Moved(Sender:TObject); begin
ThumbnailPreview1.Update; end; //---------------------------------------------------------------------------- // //---------------------------------------------------------------------------- procedure TFrame3.PageNavigatorClick(Sender:TObject); begin
PrintPreview1.CurrentPage:=PageNavigator.TabIndex+1; end;
{ ------------------------------------------------------------------ }
{ - - }
{ - Ende dieser Quelle - }
{ - - }
{ ------------------------------------------------------------------ } end.
¤ Dauer der Verarbeitung: 0.19 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.