Add TsgDXFImageEnt in a TsgDXFImage

Discuss and ask questions about CAD VCL (Delphi and C++ Builder).

Moderators: SDS, support, admin

Post Reply
robelux
Posts: 16
Joined: 31 Oct 2004, 23:24
Location: Spain

Add TsgDXFImageEnt in a TsgDXFImage

Post by robelux » 20 Apr 2006, 09:31

Hi:

How can I add type entities TsgDXFImageEnt in a TsgDXFImage?
Please it could show an example.[:D]

Thank you.
Roberto

support
Posts: 3256
Joined: 30 Mar 2005, 11:36
Contact:

Post by support » 20 Apr 2006, 12:20

Hello,

Please use the following code:

Code: Select all

<b>const</b>
  cnstFileName = 'C:\SmBody Docs\Images\img.bmp';
<b>var</b>
  vImg: TsgDXFImage;
  vImageDef: TsgDXFImageDef;
  vImageEnt: TsgDXFImageEnt;
<b>begin</b>
  vImg := TsgDXFImage(sgPaintBox.Picture.Graphic);
  <b>if</b> (vImg = <b>nil</b>) <b>or not</b> FileExists(cnstFileName) <b>then</b> Exit;
  vImageDef := TsgDXFImageDef.Create;
  vImageDef.FileName := cnstFileName;
  vImageDef.Picture.LoadFromFile(vImageDef.FileName);
  vImageDef.Handle := vImg.Converter.ImageDefCount;
  vImg.Converter.Sections[csEntities].AddEntity(vImageDef);
  <b>if</b> Assigned(vImg.Converter.OnCreate) <b>then</b>
      vImg.Converter.OnCreate(vImageDef);
  vImg.Converter.Loads(vImageDef);
  vImageEnt := TsgDXFImageEnt.Create;
  vImageEnt.Point := MakeFPoint(0,0,0);
  vImageEnt.Point1 := MakeFPoint(2.5, 0, 0);//width
  vImageEnt.Point2 := MakeFPoint(0, 2.5, 0);//heigth
  vImageEnt.Point3 := cnstFPointSingle;//scale
  vImageEnt.ImageDef := vImageDef.Handle;
  vImageEnt.FindPicture(vImg.Converter);
  vImg.Converter.Sections[csEntities].AddEntity(vImageEnt);
  <b>if</b> Assigned(vImg.Converter.OnCreate) <b>then</b>
    vImg.Converter.OnCreate(vImageEnt);
  vImg.Converter.Loads(vImageEnt);
  sgPaintBox.Invalidate;
<b>end</b>;
Sergey.

please post questions to the forum or write to support@cadsofttools.com

Post Reply