为什么WindowsMediaPlayer控件的EnableContextMenu等属性在D5和D7中都有效,但是在D6中无效!我把系统重装了,D6安了N遍还是

  • 主题发起人 主题发起人 thlt
  • 开始时间 开始时间
T

thlt

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么WindowsMediaPlayer控件的EnableContextMenu等属性在D5和D7中都有效,但是在D6中无效!我把系统重装了,D6安了N遍还是不行。我百思不得其解,也不想再折腾了。请高手指点迷津。 或者您教我一个在D7中安出D6中的FastNet组的NMHttp的方法 ( 积分: 50 )<br />在做一个多媒体播放控件时,下列3条语句:
MP1.EnableContextMenu := False;
MP1.uiMode := 'none';
MP1.stretchToFit := true;

(其中MP1就是WindowsMediaPlayer控件,对应WMPLib_TLB.pas)

在D5和D7中都有效,但是在D6中无效!为什么?
我把D5、D6、D7安了N遍还是不行。

我百思不得其解。请高手指教。
(因为我这个程序要用到D6中的控件NMHTTP而这个控件偏偏D7中没有,再回到D5中又编译不了,可是我以前明明在D6下编译通过的,现在我手头还有当时的EXE呢。)

同样的源代码,在D6下编译不通过,出现如下错误提示:
[Error] Unit1.pas(38): Undeclared identifier: 'EnableContextMenu'
[Error] Unit1.pas(39): Undeclared identifier: 'uiMode'
[Error] Unit1.pas(41): Undeclared identifier: 'stretchToFit'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

可是在D5和D7下编译时却一切OK,真是怪到家了!

Undeclared identifier -&amp;gt
非公开宣布的识别符?(不知道这么翻译对不对?)
难道 D6 不支持 WindowsMediaPlayer 的 EnableContextMenu,uiMode,stretchToFit 这三个属性而D5,D7都支持???
 
在做一个多媒体播放控件时,下列3条语句:
MP1.EnableContextMenu := False;
MP1.uiMode := 'none';
MP1.stretchToFit := true;

(其中MP1就是WindowsMediaPlayer控件,对应WMPLib_TLB.pas)

在D5和D7中都有效,但是在D6中无效!为什么?
我把D5、D6、D7安了N遍还是不行。

我百思不得其解。请高手指教。
(因为我这个程序要用到D6中的控件NMHTTP而这个控件偏偏D7中没有,再回到D5中又编译不了,可是我以前明明在D6下编译通过的,现在我手头还有当时的EXE呢。)

同样的源代码,在D6下编译不通过,出现如下错误提示:
[Error] Unit1.pas(38): Undeclared identifier: 'EnableContextMenu'
[Error] Unit1.pas(39): Undeclared identifier: 'uiMode'
[Error] Unit1.pas(41): Undeclared identifier: 'stretchToFit'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

可是在D5和D7下编译时却一切OK,真是怪到家了!

Undeclared identifier -&amp;gt
非公开宣布的识别符?(不知道这么翻译对不对?)
难道 D6 不支持 WindowsMediaPlayer 的 EnableContextMenu,uiMode,stretchToFit 这三个属性而D5,D7都支持???
 
重新装装系统试试
 
不怕你笑话,就是为了这个我连系统也重装了。郁闷。。。
 
我的连这三个属性都没有,我是装的WindowsMediaPlayer 1.0
 
to jianguobu:

这三个属性在界面上是没有的,它们是由 WMPLib_TLB.pas 定义的。
实际上你装的 WindowsMediaPlayer 9 显示的 Class 都是 WindowsMediaPlayer 1.0
 
我编译时出错呀
 
在D6下面重新生成你的 WMPLib_TLB.pas 试试[:)]
 
to thx1180,

这一步工作我早做过,没有用的。

 
试了一下,也没有。
不如楼主比较一下D6、D7各自生成的WMPLib_TLB.pas文件,主要是TWindowsMediaPlayer类的定义部分,确有不同的话用D7的WMPLib_TLB.pas替换D6的试试。
 
to 赵抄:

这个办法我也试了,提示错误,控件还是产生了,不过仍然没有用。
 
我记得D6好像导入ActiveX生成的TLB接口有问题,你下载一个EventSinkImp看看...
http://www.techvanguards.com/
 
D7没有了FastNet,这是根据For D5的改的,含源码,试试或许有用:
http://www.playicq.com:81/control/2003061715583032357.rar
 
我再试试 。。。 。。。
 
D6在ActiveX处理上,生成类型库有BUG,

解决办法,装补丁或用D7。
 
to fu_qi_ming:

最好装D6的这类补丁,可是哪里去找啊?!
 
后退
顶部