2014-09-20 78 views
1

我試圖在FMX表單中嵌入一個VCL表單,其中FMX表單包含設置爲alClient的TScalingLayout,以便在表單上調整整個內容的大小。在FMX ScalingLayout中嵌入VCL表單

我發現嵌入VCL形式FMX形式擺在首位的唯一辦法是,像這樣:

VCLForm.ParentWindow := WindowHandleToPlatform(FMXForm.Handle).Wnd; 
    VCLForm.Show; 

不幸的是這個VCLForm讓我無法家長我TScalingLayout直接,所以當我調整我的FMX表格自然不會縮放嵌入的VCL表格。

我認爲,如果我只能將VCL表單直接放到表單上,我可以使用另一個FMX表單作爲容器並將此容器表單嵌入到我的ScalingLayout中,但由於我只能將FMX表單嵌入另一個通過移動所有的孩子我的VCL表格將不會被移動。

有沒有一種方法可以嵌入我的VCL表單,這樣就可以按照同樣的方式縮放其內容:ScalingLayout上的所有FMX控件都可以縮放?

+0

您可以通過OnResize事件手動調整vcl表單的大小嗎? – 2014-09-21 07:24:51

+0

是的,我已經嘗試過,它工作正常,問題是ScalingLayout縮小所有FMX內容(而不是當窗口變小時顯示滾動條)。除了調整大小之外,我還必須使用VCL表單上的內容。 – DNR 2014-09-21 08:13:40

回答

1

不,這是不可能的。 Firemonkey可以擴展其組件的原因是因爲Firemonkey從頭開始創建和繪製它們。

大多數VCL控件都是由程序調用的內置Windows操作系統組件構成的。而那些沒有任何規模的能力。它們不是由VCL繪製的,VCL告訴Windows繪製它們。所以如果FMX沒有繪製它們,它不能縮放它們。

+0

這是不正確的。我可以使用VCL中的Align和Anchors屬性來創建一個適應窗體大小的佈局。 – 2014-09-21 07:24:00

+0

我想他是在談論縮放按鈕和文本的實際大小,這正是TScaleLayout所做的。錨不會使實際的文本縮小和擴大。 – 2014-09-27 08:36:52