trichview.support
Re: Canvas |
Author |
Message |
tomaz |
Posted: 02/05/2002 0:13:26 Thank you I have a RichViewEdit and want write to Canvas (MetaFile). But I don't want write a RVF file before. "Sergey Tkachenko" <[email protected]> wrote: >The simplest (but worst way) is using >RichView.RVData.PaintTo(Canvas, Rect(0,0,$FFFFFFF,$FFFFFFF)). >RichView must have desired width, and should be scrolled to the beginning of >document. >Inserted controls will not be drawn. > >The best way is to use (undocumented) component TRVReportHelper. >This component is very similar to TRVPrint, but >- stores RVF document (not a reference to it) >- allows to draw/print on any canvas in rectangle(s) of any sizes. > >Example of using: > > // assigning properties and events of TRVReportHelper > // these assignments can be done in design time only in Delphi 6 > helper.RichView.OnRVFImageListNeeded := helperRichViewRVFImageListNeeded; > helper.RichView.Style := RVStyle1; > > // allowing loading of these classes from RVF files > RegisterClasses([TEdit, TButton]); > // loading demo file > helper.RichView.LoadRVF('readme.rvf'); > > // formatting > helper.Init(Canvas, Width); > while helper.FormatNextPage(Height) do; > >where >Canvas - canvas to paint onto >Width - width of output rectangle >Height - maximal height of "page" (frame). If you set Height to very large >value, all document will be drawn on one "page" (if it does not have page >breaks). > >After that you can paint >helper.DrawPage(PageNo, Canvas, True, Height); > >where PageNo - number of page (from 1). >Left top corner of "page" will be in (0,0), use SetViewportOrgEx to move it >to another location. > >If you need an example, I can post it here. > > > > >> How to transform a RVF file to Canvas ? > > |
Powered by ABC Amber Outlook Express Converter