【问题标题】:Delphi, Handles in TPanel objectsDelphi,TPanel 对象中的句柄
【发布时间】:2014-09-24 12:32:45
【问题描述】:

我正在阅读 tmplayer 和 MPUI 的源代码,这两个媒体播放器都使用 MPlayer 作为后端在 Delphi 中播放媒体文件,我注意到这里以及我尝试尝试的其他旧代码中我可以'不要使用

Form1.Rectangle1.Handle

或者在这个例子中,tmp 层试图在TPanel 管道输出视频

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

如您所见,RAD studio xe6/7 抱怨该元素不包含名为 Handle 的参数。这是否曾经在旧版本中有效但不能再使用,如果是的话,我怎样才能以简单的 Firemonkey 形式完成相同的任务。

编辑

好的,现在我很清楚 Handle 参数仅适用于 VCL 表单。试图改写我的问题,

如何将特定的代码行(获取组件的句柄)移植到 Firemonkey 表单中?

【问题讨论】:

  • 您需要更清楚地说明您的问题是关于将 VCL 代码移植到 FMX。

标签: delphi firemonkey delphi-xe6 mplayer handles


【解决方案1】:

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

您可以使用以下函数将 FireMonkey 句柄转换为平台特定句柄:WindowHandleToPlatform,但无法获取表单内的控件句柄。

也许您可以将 Rectangle 替换为另一种内部形式并获取它的句柄。看看FMXEmbeddedForm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    • 2013-09-18
    相关资源
    最近更新 更多