Firemonkey组件在运行时移动

时间:2013-07-30 11:28:51

标签: delphi delphi-xe2 firemonkey

说明:

我有一个从TCustomPanel类派生的自定义VCL组件,其目的是充当某种具有父(主窗体)的自定义窗体,但所有默认按钮,例如最大化,最小化,关闭。该组件早在FMX之前就已开发出来,它是现有应用程序的重要组成部分。该组件正在捕获消息,覆盖Paint方法等。

这个组件的主要特点是具有与常规表单类似的功能(在运行时浮动它的父级,拖动...)但是有一些自定义图形(较小的按钮等......)

Demo application

手头的任务:

我正在为FireMonkey(Delphi XE2)重写组件,包括这个浮动窗口,如果有任何要点那么做。
(我不想混合使用VCL和FMX,因为在某些时候我想在FMX中使用整个应用程序。)

问题:

  1. 是否存在具有浮动功能的现有FMX控件/ 在运行时拖动/移动?

  2. Firemonkey中启用例如的方法是什么? TPanel搬家 在运行时或是否有一个控件提供该功能 默认?我想FMX中的整个想法是覆盖现有的 方法

  3. 在同一个应用程序中是否可以使用不同的表单 风格?我正在考虑使用自定义创建自定义表单 样式。在这种情况下,我可以有一个主要形式(父母)和孩子 形式各有不同的风格。

  4. 谢谢!

1 个答案:

答案 0 :(得分:2)

对于1和2,您会发现OnMouseXXXX事件很容易自己使用(如果您正在开发自定义组件,则可以使用受保护的虚拟方法)。

对于3,在每个表单上放置一个TStyleBook并将所需的样式加载到其中(记住设置表单的StyleBook属性)。您还可以将StyleBook属性指向不在表单上的实例,例如在另一种形式或全球对象上。如果你这样做,请注意在释放它之前将表单的StyleBook属性为零,否则你将获得AV。