我使用TFireMonkeyContainer
控件在VCL應用程序中嵌入Firemonkey表單。最初,一切正常。然而,每當我做一些觸發TChangeTabAction
(在TTabControl
中的標籤之間來回滑動)時,整個應用程序凍結並停止響應。即使Windows無法檢測到它沒有響應 - 標題欄甚至被凍結,我必須從IDE或任務管理器終止進程。當在Firemonkey應用程序中純粹運行時,相同的表單完美工作。通過TFireMonkeyContainer在VCL應用程序中創建FMX表單 - 應用程序凍結
重現問題並沒有太多,沒有代碼,只是表單設計。
- 安裝
TFireMonkeyContainer
控制到IDE(或動態地使用) - 創建新VCL窗體應用程序
- 掉落只有一個
TFireMonkeyContainer
VCL主窗體上控制 - 同一應用程序中創建新的FMX表格
- 分配FMX表格到容器
- 在FMX表格中,刪除一個
TTabControl
並添加幾個標籤 - 在FMX形式,落個新
TActionList
- 新增多個
TChangeTabAction
S插入動作列表,每個選項卡 - 分配每個選項卡到相應的行動
- 在FMX形式之一,落一個新的按鈕
- 分配
TChangeTabAction
s到按鈕 - 運行應用程序的一個
- 注意如何當你在按鈕上移動鼠標時,UI很好地響應
- 注意你如何的sw標籤之間癢沒問題
- 手動點擊FMX窗體上的按鈕
- 注意如何在UI不再響應和應用程序搶佔繼續
我怎樣才能讓FMX TChangeTabAction
按預期方式工作,而將我的表單嵌入此容器中?
編輯
正因爲上述解釋可能是不夠的部分,這裏有兩種形式的表單設計:
VCL形式:
object frmVcl: TfrmVcl
Left = 0
Top = 0
Caption = 'frmVcl'
ClientHeight = 405
ClientWidth = 666
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object FireMonkeyContainer1: TFireMonkeyContainer
Left = 40
Top = 40
Width = 577
Height = 305
FireMonkeyForm = frmFiremonkey.Owner
end
end
FMX形式:
object frmFiremonkey: TfrmFiremonkey
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 480
ClientWidth = 640
FormFactor.Width = 320
FormFactor.Height = 480
FormFactor.Devices = [Desktop]
DesignerMasterStyle = 0
object TabControl1: TTabControl
Position.X = 24.000000000000000000
Position.Y = 72.000000000000000000
Size.Width = 585.000000000000000000
Size.Height = 289.000000000000000000
Size.PlatformDefault = False
TabIndex = 0
TabOrder = 0
TabPosition = PlatformDefault
object TabItem1: TTabItem
CustomIcon = <
item
end>
IsSelected = True
Size.Width = 67.000000000000000000
Size.Height = 26.000000000000000000
Size.PlatformDefault = False
StyleLookup = ''
TabOrder = 0
Text = 'TabItem1'
end
object TabItem2: TTabItem
CustomIcon = <
item
end>
IsSelected = False
Size.Width = 68.000000000000000000
Size.Height = 26.000000000000000000
Size.PlatformDefault = False
StyleLookup = ''
TabOrder = 0
Text = 'TabItem2'
end
object TabItem3: TTabItem
CustomIcon = <
item
end>
IsSelected = False
Size.Width = 68.000000000000000000
Size.Height = 26.000000000000000000
Size.PlatformDefault = False
StyleLookup = ''
TabOrder = 0
Text = 'TabItem3'
end
end
object Button1: TButton
Position.X = 32.000000000000000000
Position.Y = 16.000000000000000000
Size.Width = 105.000000000000000000
Size.Height = 41.000000000000000000
Size.PlatformDefault = False
TabOrder = 2
Text = 'Button1'
OnClick = Button1Click
end
object ActionList1: TActionList
Left = 512
Top = 24
object ChangeTabAction1: TChangeTabAction
Category = 'Tab'
Tab = TabItem1
end
object ChangeTabAction2: TChangeTabAction
Category = 'Tab'
Tab = TabItem2
end
object ChangeTabAction3: TChangeTabAction
Category = 'Tab'
Tab = TabItem3
end
end
end
我想知道這個問題「不顯示任何研究工作」,「不明確」或「沒有用處」,因爲一個downvoter似乎認爲? –
嗨傑裏 - TFireMonkeyContainer的作者在這裏。我會研究它。請隨時通過https://parnassus.co/support/file-bug-report/向我發送錯誤報告/示例應用程序。 –
@DavidM完成並完成。它有點吸引人,因爲滑動效果是我在Firemonkey中設計我的應用程序的全部原因,但由於某些原因,外殼需要保持VCL。 –