2014-09-24 60 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