2014-09-24 82 views
1

我正在阅读tmplayer和MPUI的源代码,这两种媒体播放器都使用MPlayer作为后台在Delphi中播放媒体文件,我在这里注意到以及在其他旧代码中尝试过实验,我不能用Delphi,TPanel对象中的句柄

Form1.Rectangle1.Handle 

或因为它是在这个例子是想管视频输出在TPanel

CmdLine := HomeDir + 'mplayer.exe -slave -identify' 
+' -wid ' + IntToStr(Form1.Panel1.Handle) + ' -colorkey 0x101010' 
+' -nokeepaspect -framedrop -autosync 100' + #32 + Media; 

TMP层正如你可以看到的RAD Studio XE6/7抱怨该元素不包含名为的参数。这是否曾经在旧版本中有效,但不能再使用,如果是,我怎样才能以简单的Firemonkey形式完成相同的任务。

编辑

好了,所以现在我很清楚手柄参数只适用于VCL形式。试图更改我的问题,

如何将一行代码(获取组件的句柄)以Firemonkey形式进行移植?

+3

您需要更清楚地表明您的问题是关于将VCL代码移植到FMX。 – 2014-09-24 12:53:18

回答

2

Firemonkey中的面板和/或矩形没有Handle作为成员。 FireMonkey Handle是表单组件的成员。

您可以使用函数WindowHandleToPlatform将FireMonkey句柄转换为特定于平台的句柄,但是无法获取窗体内控件的句柄。

也许你可以用另一个内部窗体替换Rectangle并获取它的句柄。看看FMXEmbeddedForm