HowTo : How can I use new objects and features with the wrapper component.
Article | 60000198 |
Type | HowTo |
Product | Engine |
Version | 6 |
Date Added | 7/5/2007 |
Submitted by | Peter Chanios |
Keywords | |
Subject
How can I use new objects and features with the wrapper component.
Summary
The wrapper component is a COM ActiveX that can be used in environments like vd6 and c++6. We have implements .tlb files which can be added in the project's references and can give your application functionalities of the new component. For more information and implementations you can contact us for more details.
Exported tlb files :
VectorDraw.Serialize.tlb
VectorDraw.Render.tlb
VectorDraw.Professional.tlb
VectorDraw.Geometry.tlb
VectorDraw.Actions.tlb
VdrawPro5.tlb
vdrawi5.tlb
vdPropertyGrid.tlb
VdProControl.tlb
Solution
The following code samples implement the wrapper component where with the use of a button we add a vdMtext object which is a completely new object that is implemented in our new libraries and was not present in version 5. For this implementation we have imported VectorDraw.Geometry.tlb ,VectorDraw.Professional.tlb and also vdrawi5.tlb
VB6 code sample: |
|
C++ code sample: |
|
|
|
Private Sub Command1_Click() 'Get the document interface of VectorDraw FrameWork
Dim doc As VectorDraw_Professional.vdDocument Set doc = VDraw1.ActiveDocument.WrapperObject 'Create a new Mtext object with
VDF Interfaces Dim mtext As VectorDraw_Professional.vdMText
Set mtext = New VectorDraw_Professional.vdMText
'typecast the Mtext as vdbaseObject
Dim baseobj As VectorDraw_Professional.vdBaseObject Set baseobj = mtext
baseobj.SetUnRegisterDocument doc
'typecast the Mtext as vdPrimary
Dim primary As VectorDraw_Professional.vdPrimary Set primary = mtext
primary.setDocumentDefaults
'Create a gPoint object Dim pt As VectorDraw_Geometry.gPoint
Set pt = New VectorDraw_Geometry.gPoint pt.SetValue 2, 3, 0
'set values in some properties of mtext
mtext.TextString = "VectorDraw Mtext using VDF Interfaces" Set mtext.InsertionPoint = pt
mtext.BoxWidth = 12 mtext.Height = 1#
'typecast the Mtext as vdFigure
Dim fig As VectorDraw_Professional.vdFigure
Set fig = mtext
'add mtext in the collection entities table
doc.ActiveLayOut.entities.AddItem fig
primary.Update
fig.Invalidate
VDraw1.CommandAction.Zoom "e", 0, 0 End Sub |
|
void
Cvd6WrapperDlg::OnBnClickedMtext()
{
//Get the document interface of VectorDraw FrameWork
VectorDraw_Professional::IvdDocumentPtr doc =
m_vdraw.GetActiveDocument().GetWrapperObject();
//Create a new Mtext object with VectorDraw FrameWork Interfaces
VectorDraw_Professional::IvdMTextPtr
mtext(__uuidof(VectorDraw_Professional::vdMText));
//typecast the Mtext as vdbaseObject
VectorDraw_Professional::IvdBaseObjectPtr baseobj =
(VectorDraw_Professional::IvdBaseObjectPtr)mtext;
baseobj->SetUnRegisterDocument(doc);
//typecast the Mtext as vdPrimary
VectorDraw_Professional::IvdPrimaryPtr primary =
(VectorDraw_Professional::IvdPrimaryPtr)mtext;
primary->setDocumentDefaults();
//Create a gPoint object;
VectorDraw_Geometry::IgPointPtr pt(__uuidof(VectorDraw_Geometry::gPoint)); pt->SetValue(2,3,0);
//set values in some properties of mtext
mtext->PutRefInsertionPoint(pt);
mtext->PutTextString("Vectordraw Mtext using VectorDrawFramework Interfaces");
mtext->PutBoxWidth(12);
mtext->PutHeight(1.0);
//typecast the Mtext as vdFigure
VectorDraw_Professional::IvdFigurePtr figure =
(VectorDraw_Professional::IvdFigurePtr)mtext;
//add mtext in the collection entities table
doc->ActiveLayOut->Entities->AddItem(figure); primary->Update();
figure->Invalidate();
m_vdraw.GetCommandAction().Zoom(COleVariant(_T("e")),COleVariant(),COleVariant()); }
|
|
Delphi 7 code sample:
|
|
|
|
|
|
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, SHDocVw, AxCtrls, OleCtrls,
VDrawLib5_TLB, VDrawI5_TLB, VectorDraw_Professional_TLB, VectorDraw_Geometry_TLB;
procedure TForm1.Button1Click(Sender: TObject);
var
mtext : VectorDraw_Professional_TLB.IvdMText;
pt : VectorDraw_Geometry_TLB.Igpoint;
doc : VectorDraw_Professional_TLB.IvdDocument;
primary : VectorDraw_Professional_TLB.IvdPrimary;
baseobject : VectorDraw_Professional_TLB.IvdBaseObject;
begin
doc := vdrawpro.ActiveDocument.WrapperObject as VectorDraw_Professional_TLB.IvdDocument;
pt := VectorDraw_Geometry_TLB.CogPoint.Create();
pt.SetValue(2,3,0);
mtext := VectorDraw_Professional_TLB.CovdMText.Create();
baseobject := mtext as VectorDraw_Professional_TLB.IvdBaseObject;
baseobject.SetUnRegisterDocument(doc);
primary:=mtext as VectorDraw_Professional_TLB.IvdPrimary;
primary.setDocumentDefaults();
mtext.TextString := 'VectorDraw Mtext using VDF Interfaces';
mtext.InsertionPoint := pt;
mtext.BoxWidth := 12;
mtext.Height := 1;
doc.ActiveLayOut.entities.AddItem(mtext as VectorDraw_Professional_TLB.IvdFigure);
vdrawpro.CommandAction.Zoom('E',0,0);
end;
procedure TForm1.Button2Click(Sender: TObject);
var vdGPts : VectorDraw_Geometry_TLB.Igpoints;
doc : VectorDraw_Professional_TLB.IvdDocument;
primary : VectorDraw_Professional_TLB.IvdPrimary;
baseobject : VectorDraw_Professional_TLB.IvdBaseObject;
vdGPt : VectorDraw_Geometry_TLB.Igpoint;
GS : VectorDraw_Professional_TLB.IvdGroundSurface;
I : integer;
begin
vdraw1.DisplayFrames:=63;
vdraw1.StatusBar:=true;
vdraw1.StatusBarMenu:=true;
vdraw1.EnableAutoGripOn:=true;
doc := vdraw1.ActiveDocument.WrapperObject as
VectorDraw_Professional_TLB.IvdDocument;
vdGPts := VectorDraw_Geometry_TLB.CogPoints.Create();
for I:=1 to 8 do // create a ground sourface from 8 points
begin
vdGPt := VectorDraw_Geometry_TLB.CogPoint.Create();
vdGPts.Add(vdGpt);
end;
vdGPTs.Item[0].SetValue(2,3,0);
vdGPTs.Item[1].SetValue(2,5,1);
vdGPTs.Item[2].SetValue(4,5,1.5);
vdGPTs.Item[3].SetValue(4,3,1);
vdGPTs.Item[4].SetValue(7,3,2);
vdGPTs.Item[5].SetValue(7,5,0.5);
vdGPTs.Item[6].SetValue(9,3,0.3);
vdGPTs.Item[7].SetValue(9,5,0.5);
GS := VectorDraw_Professional_TLB.CovdGroundSurface.Create();
baseobject := GS as VectorDraw_Professional_TLB.IvdBaseObject;
baseobject.SetUnRegisterDocument(doc);
primary:=GS as VectorDraw_Professional_TLB.IvdPrimary;
primary.setDocumentDefaults();
GS.Points := vdGPts;
GS.MeshSize := 0.1;
GS.DispMode := DisplayMode_Mesh;//DisplayMode_Triangle;
doc.ActiveLayOut.entities.AddItem(GS as VectorDraw_Professional_TLB.IvdFigure);
vdraw1.CommandAction.View3D('VISE');
vdraw1.CommandAction.Zoom('E',0,0);
end;
|
|
|