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.

noteNote

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

Namespace: FMX.RS.SVG

Top

Top

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

Delphi

unit ExampleSVGGraphicsMain;
 
 interface
 
 uses
   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;
 
 type
   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
     { Private declarations }
     procedure RedrawPaintBox(Sender: TObject);
   public
     { Public declarations }
     SVG: TSVGDocument;
   end;
 
 var
   Form1: TForm1;
 
 implementation
 
 {$R *.fmx}
 
 procedure TForm1.FormCreate(Sender: TObject);
 var
   aRect: TSVGRectangle;
 begin
   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
   SVG.Items.Add(aRect);
   // 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;
 end;
 
 procedure TForm1.FormDestroy(Sender: TObject);
 begin
   SVG.Free;
 end;
 
 procedure TForm1.PaintBox1Paint(Sender: TObject; Canvas: TCanvas);
 begin
   // draw the SVG to fill the PaintBox canvas, irregardless of its size
   SVG.Draw(Canvas, PaintBox1.ClipRect);
 end;
 
 procedure TForm1.RedrawPaintBox(Sender: TObject);
 begin
   PaintBox1.Repaint;
 end;
 
 procedure TForm1.TrackBar1Change(Sender: TObject);
 begin
   // modify the width of the rectangle element
   (SVG.AllItems['MyRect'] as TSVGGraphicElement).Width := (Sender as TTrackBar).Value;
 end;
 
 end.

RiverSoftAVG Products Help © 1996-2016 Thomas G. Grubb