笑 笑面虎 Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-06 #1 请问怎样在运行时动态加载ActiveX控件?急!!!!!如swflash.ocx这一个?[?]
今 今天能看见山 Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-06 #2 对此非常GZ,我也正在找这个问题的答案,如果找到了我就告诉你。
J jsxjd Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-07 #5 1 执行菜单 Component ,Import ActiveX Control 2 选择 Shockwave Flash后点击"Create Unit",这时会产生单元文ShockwaveFlashObjects_TLB 3 在Form 的 uses 中添加 ShockwaveFlashObjects_TLB 4 在Form 的声明中添加: public { Public declarations } flash:tshockwaveflash; 5 动态创建和其它普通控件的创建是一样的. procedure TForm1.Button3Click(Sender: TObject); begin flash:=tshockwaveflash.Create (self); flash.parent:=self; flash.top:=10; flash.Left:=10; flash.Width:=200; flash.Height:=200; flash.Width:=200; flash.Visible:=true; end; 1 2 步主要是引入类型库并进行封装. 以下方法能创建,不知如何放在表单上: procedure TForm1.Button4Click(Sender: TObject); var flevariant; begin f:=createOleObject('ShockwaveFlash.ShockwaveFlash'); end; 以下接口不支持: oleContainer.CreateObject ('ShockwaveFlash.ShockwaveFlash',true);
1 执行菜单 Component ,Import ActiveX Control 2 选择 Shockwave Flash后点击"Create Unit",这时会产生单元文ShockwaveFlashObjects_TLB 3 在Form 的 uses 中添加 ShockwaveFlashObjects_TLB 4 在Form 的声明中添加: public { Public declarations } flash:tshockwaveflash; 5 动态创建和其它普通控件的创建是一样的. procedure TForm1.Button3Click(Sender: TObject); begin flash:=tshockwaveflash.Create (self); flash.parent:=self; flash.top:=10; flash.Left:=10; flash.Width:=200; flash.Height:=200; flash.Width:=200; flash.Visible:=true; end; 1 2 步主要是引入类型库并进行封装. 以下方法能创建,不知如何放在表单上: procedure TForm1.Button4Click(Sender: TObject); var flevariant; begin f:=createOleObject('ShockwaveFlash.ShockwaveFlash'); end; 以下接口不支持: oleContainer.CreateObject ('ShockwaveFlash.ShockwaveFlash',true);
今 今天能看见山 Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-07 #6 楼上说的方法成吗? 我看你前面的方法,不是还得在设计阶段加进它的类型库吗?那不算。 后面的方法看上去好象还可以吧,我试试去。
今 今天能看见山 Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-07 #8 找到了答案: 如果我们要动态创建任意的ActiveX控件那么该怎么办呢?可以利用OLE Container控件来达到我们的目的!我们可以动态创建TOLEContainer控件,然后OleContainer有可以动态创建任意的对象,例如: procedure TForm1.Button1Click(Sender: TObject); begin OleContainer1.CreateObject(Edit1.Text,False); OleContainer1.DoVerb(ovShow); end; 然后我们运行程序,在Edit里面输入'ShockwaveFlash.ShockwaveFlash.1'点击Button1,然后在Edit里面输入Word.Document,然后点击Button,你会发现我们已经能够动态创建任意的ActiveX控件了。 。 注意,若目标机器上面没有安装OCX控件,我们可以在程序的最开始使用WinExec或者ShellExecute()运行regsvr32 来注册OCX控件即可,否则可能无法创建控件。
找到了答案: 如果我们要动态创建任意的ActiveX控件那么该怎么办呢?可以利用OLE Container控件来达到我们的目的!我们可以动态创建TOLEContainer控件,然后OleContainer有可以动态创建任意的对象,例如: procedure TForm1.Button1Click(Sender: TObject); begin OleContainer1.CreateObject(Edit1.Text,False); OleContainer1.DoVerb(ovShow); end; 然后我们运行程序,在Edit里面输入'ShockwaveFlash.ShockwaveFlash.1'点击Button1,然后在Edit里面输入Word.Document,然后点击Button,你会发现我们已经能够动态创建任意的ActiveX控件了。 。 注意,若目标机器上面没有安装OCX控件,我们可以在程序的最开始使用WinExec或者ShellExecute()运行regsvr32 来注册OCX控件即可,否则可能无法创建控件。