好多OCX控件在D5上可以安装上去,怎么在D6上却安装不上呢?(30分)

  • 主题发起人 主题发起人 ymf
  • 开始时间 开始时间
Y

ymf

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,分不够可以加
 
没问题呀。
 
安装delphi6.0的升级包!
 
能不能将现象具体描述一下, 到底怎样安装不上去?
 
to zhangxzh
pack1、pack2都装了

to 代鱼 出现下面两个错误提示
1、Error in module : CONTINS clause is incorrect
2、Error in module dclusr:: CONTINS clause is incorrect
如何解决呢?
 
啊, 看到dclusr这个字眼, 我开始有点明白了, dclusr.dpk这个东东是Delphi为用户准备
的缺省的用户自定义组件安装包, 八成是你以前安装过的某个组件或者控件安装失败或者
这个东西出问题了.
现在要么将dclusr.dpk文件用记事本打开, 将坏酒药剔除;
要么安装时不要选择这个包(缺省就是这个包), 选择"New Package"新建一个包(也就
是dpk文件) , 再安装.
这个问题咱以前也遇到过, 不过我折磨D6折磨得勤, 装完一个接着装另一个, 当一个安装
失败后, 再安装另一个就出现上面的错误了. 打开dclusr.dpk, 发现果然有残留农药.
如果换个包还不行的话, 那你只有牺牲以前你安装过的组件, 将dclusr.dpk删除掉,
然后再新建一个包, 这样应该没问题.
注意: "New Package"不是file菜单里的那个。而是在improve OCX control里的某一个
对话框中。
祝好运啊, 呵呵 :)

分不够啊------------- 开个玩笑, 哈哈 :)
 
to 代鱼
我没有安装过其它控呀,我照你的方法安装时重新新建了一包,也出现同样的错误怎么回事,对了安装时自动在/Imports目录下创建的外套文件名中含有中文字符。

因为这个文件名字中含有中文字符,我以前在D5下面装是这样的步骤:第一步,
Component——>Import ActiveX Control——>选中控件后再 Create Unit,
创建了外套后我在Delphi中把unit名改成了英文名,然后再到/Imports目录
中把文件名也改成英文,第二步:然后再Component——>Install Component——>
选中第一步中Create Unit的外套文件,编译一下,就可以安装成功了。怎么到了D6中,
install这个按钮不能用。
对了这个OCX是VB6写的,是一个可视构件。

分不够可以加,什么地方可以上传东西,我把这个OCX上传了,大家帮我看一下到底怎么
回事。
 
这兴许就是你说的那个文件名在作怪, 你是用手工改的, 难免会有纰漏.
既然那个OCX文件名有问题, 何不将它直接更名呢? 这样就省事得多了.

如果你觉得这个东东确实有问题, 不妨传给我们, 让大家都来弄弄看.

我的E-mail: dydxd@hotmail.com

另: 分不够嘛纯粹是句玩笑话, 别介意哦? 呵呵 :)
 
to 代鱼
我给你发过来了,麻烦你帮我看一下怎么回事
 
ymf兄弟:
直接安装果然是不行的, 不管是D5还是D6

看来和它内含的中文注册名称有关系。

按照ymf老兄的做法, 我在D5上试验了一把,果然安装上去了。
然后在D6上安装,嘿嘿,其实是安装上去了! 生成了bpl和dcp,即:控件已经客观地安装存在。

那么为什么组件面板上看不到它呢?我可以断定结论只有一个:
D6生成的外套pas文件里没有Register部分,即没有对控件进行组件面板注册和类注册的东西。

打开D5和D6各自生成的外套单元文件,仔细比较研究,可以发现,D6的比D5的大得多,格式也不太一样。
,用记事本搜索功能,敲入Register进行搜索,果然,D5的那个文件有下面的东东:
procedure Register;
begin
RegisterComponents('ActiveX',[TCtrDisp]);
end;

而D6的,压根就没有Register这个词在里面。

后来,我仿D5把这个Register加在D6中,根本不行。

接着,索性把D5生成的拿给D6用,一试验,发现不行,修改了一下,安装上去了。


但是,这样安装出来的东西根本不能使用,一用就出错:
Access violation at address 0083EDFD in module 'VCL60.bpl' Read of address FFFFFFFF

这是内存访问错误,我也无法解决,就不知那位高手可以搞定了。

不过我建议:鉴于D6把OCX的引入模式都改变了,因此我看最好不要用我说的方法:即拿D5生成的外套
文件修改一下,给D6用。这样就算安装成功也没法用。
另外D6所生成的外套格式,根本不是组件的单元格式,因此根本不能用install component的方法来安装。
而D5生成的外套是组件格式的单元,因此可以用来安装。

区别就在这里,ymf兄弟,东西我已经给你在D6上装上了,但是没法用。
我只能给你搞到这里了,剩下的东西超出了我的水平范畴。
希望比我高得多的大侠横空出世,救拔ymf兄弟一把。

to ymf :如果你要我改的那个文件,告诉我你的E-mail,我给你E过去。其实改得不多,
注释掉了两条常数。以前这样改过没有后遗症,这次不行了。
估计和D6的OCX引入方式有关系。
不过我隐隐约约感到,这个OCX做得也不很规矩。

看来这个问题又可以开一坛了, 各位大虾快上啊!
 
to 代鱼
非常感谢你帮忙,我的油箱是:epa@km169.net
 
非常谢代鱼、及其它朋友帮助,接爱答案了
 
ymf兄弟: 安装上去了吗? 可以用吗?
我想知道到底怎么样了。
 
to 代鱼
已经安装上去了,但是不能用,我再试试看
 
和我的遭遇一样啊, 希望你的运气比我好哦? 呵呵 :)
 
后退
顶部