Show/Hide Toolbars

RiverSoftAVG Products Help

Represents a SVG 'svg' element. An SVG document fragment consists of any number of SVG elements contained within an ‘svg’ element. The TSVGDocument class represents the actual SVG.

The TSVGDocument class is the base class for parsing a SVG and generating TSVGxxxElement classes to describe the SVG. Use the TSVGDocument class to load an SVG and paint the SVG to a TCanvas.


The TSVGDocument is only available at run-time. The TRSSVGDocument (VCL) and TRSFMXSVGDocument (FMX) expose the TSVGDocument for loading at design-time.

Namespace: RSSVG



The following example creates a rectangle insize the SVG and modifes its color:


unit ExampleSVGGraphicsMain;
   System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
   FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects,
   FMX.RS.SVGCtrls, FMX.RS.SVG, FMX.RS.SVGTypes, FMX.RS.SVG.BasicShapes,
   FMX.Controls.Presentation, FMX.StdCtrls;
   TForm1 = class(TForm)
     PaintBox1: TPaintBox;
     TrackBar1: TTrackBar;
     procedure FormCreate(Sender: TObject);
     procedure PaintBox1Paint(Sender: TObject; Canvas: TCanvas);
     procedure TrackBar1Change(Sender: TObject);
     procedure FormDestroy(Sender: TObject);
     { Private declarations }
     procedure RedrawPaintBox(Sender: TObject);
     { Public declarations }
     SVG: TSVGDocument;
   Form1: TForm1;
 {$R *.fmx}
 procedure TForm1.FormCreate(Sender: TObject);
   aRect: TSVGRectangle;
   SVG := TSVGDocument.Create(nil);
   SVG.OnChange := RedrawPaintBox;
   // Set the viewbox, or user coordinate space, for the size of the virtual canvas
   SVG.ViewBox.Rect := RectF(0, 0, 100, 100);
   // create a rectangle element
   aRect := TSVGRectangle.Create(SVG);
   aRect.ID := 'MyRect';
   // add as child of SVG
   // set the size of the rectangle in the current coordinate system
   aRect.BoundsRect := RectF(20, 20, 40, 30);
   // set its color to red.  Note that we must ensure the rectangle does not
   // inherits its fill from its parent (the svg in this case)
   aRect.Inherits.Fill := False;
   aRect.Brush.Color := TSVGColorRec.Red;
 procedure TForm1.FormDestroy(Sender: TObject);
 procedure TForm1.PaintBox1Paint(Sender: TObject; Canvas: TCanvas);
   // draw the SVG to fill the PaintBox canvas, irregardless of its size
   SVG.Draw(Canvas, PaintBox1.ClipRect);
 procedure TForm1.RedrawPaintBox(Sender: TObject);
 procedure TForm1.TrackBar1Change(Sender: TObject);
   // modify the width of the rectangle element
   (SVG.AllItems['MyRect'] as TSVGGraphicElement).Width := (Sender as TTrackBar).Value;

RiverSoftAVG Products Help © 1996-2016 Thomas G. Grubb