急:数据库控件TDBGrid,不能做成ActiveX控件(200分)

  • 主题发起人 主题发起人 googoo
  • 开始时间 开始时间
G

googoo

Unregistered / Unconfirmed
GUEST, unregistred user!
以前有人回答说,要继承了Wincontrol或TCustomControl的控件
才可以转成ActiveX控件。
但是TDBGrid是继承TCustomControl的,为什么不能转?

现在有一个改造过的TDBGrid,急需做成ActiveX控件,请问有什么办法?
 
我想:很难办到。

TDBGrid是从TCustomControl继承下来的,由于起涉及的东西比较多,如他与
TQuery,Table,TDatasource以及与TGridDataLink之间的关系太复杂了,很难
将其转变为ActiveX控件。我想这就是Delphi没有让其出现在ActiveX Control
Wizward中出现的原因吧。

不过我也期待有高手能将其转变为ActivX控件。
 
VB的DBgrid比 TDBgrid好用很多,为什么不直接用呢?
 
主要是已经改造了一个TDBGRID的东西,作为delphi的组件时很好用,
现在想把它转成activex控件。
 
其实也可以做到的,那就是做一个新类,一点一点的把
TDbGrid的属性和方法一个一个的加上去,呵呵,
这好象是delphi的开发者做的事!!!!
 
TDBGrid 用到了大量的BDE的数据接口。
即使转换,也没有大用途
 
所有delphi的data ware控件都是不能转换成ActiveX
ActiveX wizard是故意不把db controls放在可转换
列表里的,呵呵,这在我刚看的一篇Ray Konopka
的文章里写的很清楚,甚至Tlistbox也不能完全转换
它的ondrawitem事件在转换后就丢失了,因为它包含
了一个参数TRect是ActiveX所不支持的数据类型
 
这样试试吧:
制作一个 ActiveX Form,在上面放上你的
DBGrid ,提供适当的接口,供用户修改其属性,
把 ActiveX Form 作为发布对象进行发布。
 
hubdog: 能不能把文章也给我看看?我的信箱是googoo@263.net。多谢。

我用StringGrid模拟了部分功能,在转成ActiveX时也丢失了许多事件,包括mouse
事件。自定义的事件更是没了。而其中没有任何非标准的参数类型。
不知道原因何在。
 
我现在要问的问题也是这个,
苦呀
 
把DBGRID放在FORM上,把FORM打包成ACTIVEX FORM,这是正确做法,前提是在内部
网应用,在INTERNET上,DATA包太大,BORLAND也是这么考虑的,才在ACTIVEX WIARD中不出现DB控件
 
没有合适的解答怎么办?我想把这个问题结束掉了。
 
我觉得BIG_Z的方法 可一试
 
多人接受答案了。
 

Similar threads

后退
顶部