Page 1 of 1

Add TsgDXFImageEnt in a TsgDXFImage

Posted: 20 Apr 2006, 09:31
by robelux
Hi:

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

Thank you.
Roberto

Posted: 20 Apr 2006, 12:20
by support
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